###前提・実現したいこと
お分かりの方、ご回答いただけますと大変助かりますm(_ _)m
私は現在、s3にアップロードした画像を画像処理するスクリプトをpythonで書いておりますが、boto3でkeyを取得すると、謎の文字列がくっついてきてしまい、splitなどでもとることができない状態で困っております。この現象と対策お分かりのかたいらっしゃいますでしょうか??
IOError: [Errno 2] No such file or directory: '/media/test.jpg.dAAAfd01'
###該当のソースコード(py2.7です)
python
1 2s3 = boto3.client('s3') 3 4for record in event['Records']: 5 bucket = record['s3']['bucket']['name'] 6 key_with_extention = str(record['s3']['object']['key']) 7 key = key_with_extention.split(".")[0] + "." + key_with_extention.split(".")[1] 8 download_path = '/tmp/{}'.format(key) 9 10 s3.download_file(Bucket=bucket, Key=key ,Filename=download_path) #ここでエラーがでます
###試したこと
key_with_extention = str(record['s3']['object']['key']) は複数パターン試しました。 ・strつけないで実行 key_with_extention = record['s3']['object']['key'] ・urllib.unquote_plus(event['Records'][0]['s3']['object']['key']) ・urllib.unquote_plus(event['Records'][0]['s3']['object']['key']).decode('utf8')
###補足情報(言語/FW/ツール等のバージョンなど)
ヒントになりそうな点があります。
'/media/hoge/hoge/test.jpg.dAAAfd01','/media/test.jpg.dAAAfd01' とs3の内部にディレクトリを作った中に画像をアップしたときだけに起きます。
s3の一番上のディレクトリだと(パスが'test.jpg'のみ)、エラーなく稼働しています。
key = '/media/hoge/hoge/test.jpg.dAAAfd01'
のはずなのに、key.split(".")[0]でも分割されないんです・・・これも何かヒントになりそうな気もするのですが・・・う〜ん 困っています・・・・
もう一点ヒントになるかわからないのですが、s3コンソール上だとtest.jpgとだけ出ていて、boto3からアクセスしたときだけに謎も文字列がくっついてきています。
どなたかお力添えくださると大変助かります・・・
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/28 02:50
2017/04/28 07:31