0
私はChaliceを使用してS3から画像ファイルを返すシンプルなアプリケーションを構築しています。AWS Chalice S3から画像ファイルを返す
ファイルが64ビットエンコードされた後にファイルを返すことができます。しかし、私はバイナリファイルをどのように返すことができるのだろうと思っているので、ユーザーはファイルをダウンロードすることができますか?私の次のコードは動作していません。
@app.route('/binary_object/{bucket}/{key}', methods=['GET', 'PUT'])
def binary_object(bucket, key):
request = app.current_request
if request.method == 'GET':
try:
file_path = '/tmp/{}_{}'.format(uuid.uuid4(), key)
s3_client.download_file(bucket, key, file_path)
file_size = os.path.getsize(file_path)
headers = {'Content-Disposition': 'attachment; filename=\"' + key + '\"',
'Content-Type': 'application/octet-stream',
# 'Content-Type': 'image/*',
'Content-Length': str(file_size)}
fsk = open(file_path, 'rb')
return Response(body=fsk, headers=headers, status_code=200)
except Exception as e:
print e
raise e