初めに

協栄情報の陸です。

やりたいこと

昨日、Lambdaよりs3のファイル名を変更してみたところ、Amazon s3のイベント通知でLambda関数が発動した際に、Lambda関数に返されるオブジェクトの中でファイル名の特殊符号が自動的に修正されていたのですが、バケット内のファイル名は何も変更されていなかったので、ここで少しテストをしてみて共有してみました。

利用するサービス

  • Amazon S3
  • Lambda
  • CloudWatch ロググループ

    構成図

    file

    操作

    まず、s3バケットのプロパティ画面からイベント通知の作成を選択します。
    file
    その後、関連するデータを記入します。 イベント名、プレフィックス、サフィックス、イベントタイプ。 このテストではアップロードタイプのみなので、putタイプを選択するだけでOKです。
    file
    次に、Lambda関数を選択します。
    file
    その後、返されたオブジェクトを見るために、イベントをプリントアウトするLambda関数を書きます。
    file

    特殊符号を使用しない場合

    そして、通知イベントが発生するs3上のフォルダにtxtファイルをアップロードし、アップロードが成功したらCloudWatchにロググループのログを確認します。
    file
    何も変わっていない
    file

    特殊符号を使用した場合

    もう一つのファイルを特殊符号でアップロードしてみましょう。
    file
    もう一度ログを見てみると、この時点でファイル名が自動的に変更されていることがわかりますが、バケットのファイル名は何も変更されていません。
    file

符号変換表

テスト後、以下の符号は自動的に変換されます。
file

現在、解決策は見つかりませんでした。オプジェクトデータを処理するときは、置換によってのみ特殊記号を使用できます。
もっと良い解決策があれば、教えてください。

以上

Last modified: 2021-03-15

Author