この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
初めに
協栄情報の陸です。
やりたいこと
昨日、Lambdaよりs3のファイル名を変更してみたところ、Amazon s3のイベント通知でLambda関数が発動した際に、Lambda関数に返されるオブジェクトの中でファイル名の特殊符号が自動的に修正されていたのですが、バケット内のファイル名は何も変更されていなかったので、ここで少しテストをしてみて共有してみました。
利用するサービス
- Amazon S3
- Lambda
- CloudWatch ロググループ
構成図
操作
まず、s3バケットのプロパティ画面からイベント通知の作成を選択します。
その後、関連するデータを記入します。 イベント名、プレフィックス、サフィックス、イベントタイプ。 このテストではアップロードタイプのみなので、putタイプを選択するだけでOKです。
次に、Lambda関数を選択します。
その後、返されたオブジェクトを見るために、イベントをプリントアウトするLambda関数を書きます。
特殊符号を使用しない場合
そして、通知イベントが発生するs3上のフォルダにtxtファイルをアップロードし、アップロードが成功したらCloudWatchにロググループのログを確認します。
何も変わっていない
特殊符号を使用した場合
もう一つのファイルを特殊符号でアップロードしてみましょう。
もう一度ログを見てみると、この時点でファイル名が自動的に変更されていることがわかりますが、バケットのファイル名は何も変更されていません。
符号変換表
テスト後、以下の符号は自動的に変換されます。
現在、解決策は見つかりませんでした。オプジェクトデータを処理するときは、置換によってのみ特殊記号を使用できます。
もっと良い解決策があれば、教えてください。
以上