私はpython2.7とs3とAWS lambdaを使用します。私はs3を置くjpegファイルのキーを取得しようとします。私はboto3を使用します。それから私は問題がある。つまり、私がboto3でキーを取得したときに、キーの内容はファイルへのパスではなく、サフィックス文字列のようなものが追加されます( '/media/test.jpg.dAAAfd01'のように)/ media/test .jpg ")aws s3 by boto3アップロードファイルのキーが何か変わった文字列を追加しました
このエラーを解決するために熱心であれば、教えてください。
エラーメッセージは次のとおりです。
例外IOError:[エラー番号2]このようなファイルまたはディレクトリ:I型 '/media/test.jpg.dAAAfd01'
コード(py2.7)
s3 = boto3.client('s3')
for record in event['Records']:
bucket = record['s3']['bucket']['name']
key_with_extention = str(record['s3']['object']['key'])
key = key_with_extention.split(".")[0] + "." + key_with_extention.split(".")[1]
download_path = '/tmp/{}'.format(key)
s3.download_file(Bucket=bucket, Key=key ,Filename=download_path) #i got error here
iは分割を使用しようとしましたそれを解決する。このよう 、
キー= '/media/hoge/hoge/test.jpg.dAAAfd01' key.split( " ")[0] +"。JPG"
しかしkey.split( ")")[0]は無効です。
私は混乱しています。
助け私を...
コードにロギングを追加して、値を確認することができます。 http://docs.aws.amazon.com/lambda/latest/dg/python-logging.htmlを参照してください。 – jarmod
ロギングの1つの方法は、ハンドラの先頭に 'print(Records)'を挿入することです。これにより、着信メッセージのコピーがCloudWatchログに保存されます。それから、あなたの質問にロギング情報を追加してください(編集を使用してください)ので、私たちは着信データを見ることができます。 –
あなたのアドバイスをいただきありがとうございます、私は問題を解決し、私は今から記事を置く –