2019年07月31日

DynamoDBのqueryにGSIを指定する

4年ぶりの更新。boto3 Pythonネタ。
件名の通りでGSIをqueryの条件に指定する場合は以下のように書く。

table = dynamodb.Table('tbl_hoge')

rslt = table.query(
IndexName='hoge_type-index',
KeyConditionExpression=Key('hoge_type').eq(2)
)


なぜ書こうかと思ったのかは、Qiitaでは「IndexName」の指定をしていないソースコードが散見されるから。「Query condition missed key schema element」とか出るはずなのに。動いているのだろうか・・・。

hiroki0907 at 18:52PythonAWS 

2015年12月14日

GoogleのBotをCSS、JSgファイルにアクセス可にしたほうがいいらしい

Serach ConsoleのFetch as Googleでたまたまレンダリングリクエストを送信した際に「Googlebot ではこのページを以下のように認識しました。」とキャプチャが表示されました。CSSが当てられていない状態のやつです。

原因はrobots.txt でCSS等のファイルに制限をしているからで
「robots.txt テスター」で確認することができます。

Googleからは「Google がサイトのコンテンツを完全に把握できるように、サイトのアセット(CSS や JavaScript ファイル)がすべてクロールされるようにしてください。」と技術ガイドラインの更新に伴って通知が来ていたりするので、HTMLとアセットをすべてアクセス可能にして、ちゃんとサイトとして認識させることが必要のようです。

SEOとしてもブロックすると悪影響があるようです。

hiroki0907 at 13:16トラックバック(0)その他 

2015年07月15日

Zend OPcacheをCLIでも有効にする

phpinfoで「Opcode Caching」が「Up and Running」になっていると、有効と思っていましたが
然るべき設定ファイルで、opcache.enable_cliが有効にされている必要があります。
>/etc/php.d/opcache.ini
; Determines if Zend OPCache is enabled for the CLI version of PHP
opcache.enable_cli=1

CLI利用でもフレームワークを使ってるとOPcacheは効果的である場合が多いので、見落とさないようにしたい。

hiroki0907 at 18:12トラックバック(0)PHP 

テキストファイルの中身をjson_decodeできない

文字コードUTF-8でテキストファイルに書かれたJSONをjson_decodeで配列化したいときに、読み込んだ文字列が
JSONとして正しい構造なのに戻り値がfalseになっている場合があります。

$file = file_get_contents('json.txt', true);
$json_obj = json_decode((String)$file,true);

原因はテキストファイルがBOM付きで保存されているからです。対応としてBOM無し(UTF-8N)で保存すると解決します。

hiroki0907 at 17:59トラックバック(0)PHP 

2015年05月06日

FPDI PDF-Parserのライセンス

使っている方はあまりいないかもしれませんが、試験的にFPDIの有償ライセンス(Developer License)を買いました。

それまでの評価版はIoncubeかZendによるライセンスファイルを配置していたのですが、Developer Licenseの項目に「Not needed 」の表示あり、「No download required, please download the unprotected version from the downloads area above.」とのこと。

どうやら有償版はライセンスの切り替えではなく、ライセンスが不要なFPDIライブラリが提供されるので
そっちをダウンロードして使ってくれということみたいです。

英語力の低さが露呈・・・。

hiroki0907 at 00:46トラックバック(0)PHP 

2015年02月05日

複数カラムに設定されたPRIMARY KEYを一つ減らす

MySQLで複数のカラムにPRIMARY KEYが設定された状態で、一つのカラムの制約だけ外したい場合
カラムを指定して外すことができません。また、一旦全部外すこともできません。

対応方法としては以下のようなSQLにして、外しつつ指定するという形にすると実現できます。
ALTER TABLE item DROP PRIMARY KEY , ADD PRIMARY KEY (item_id);

あまり無いシチュエーションですが、メモ。

hiroki0907 at 21:05トラックバック(0)DB 

2014年12月11日

PHP、Apacheのファイルアップロード制限について

大きめの画像ファイルをアップロードするフォームを作るときなどに、PHPの設定が原因でエラーになるのはよくあることで、以下の3点を気にかけることになります。


  • php.iniのpost_max_sizeの上限を変更する

  • php.iniのupload_max_filesizeの上限を変更する

  • php.iniのmemory_limitが多めに確保されているか確認する



それらを対応しても、「Request Entity Too Large」というエラーが出てアップロードできないこともあります。
その時は、Apache側の設定で「LimitRequestBody」という項目を調整します。

これでファイルサイズに依存する、大凡のエラーは解消できます。

hiroki0907 at 17:21トラックバック(0)PHP 
  • ライブドアブログ