Я использую boto3 для запроса результатов из Афины.Они работают нормально.Я снова использую boto3, чтобы скопировать файл из одной корзины s3 в другую, но он говорит, что не может найти файл.Я не могу найти решение.Пожалуйста, помогите!
Когда я захожу на консоль s3, я вижу файл, но boto3 не может его найти.
import boto3
athena = boto3.client('athena')
s3 = boto3.resource('s3')
BUCKET_NAME = 'bucket1'
bucket = s3.Bucket(BUCKET_NAME)
query = 'SELECT * FROM "db"."table" limit 2'
response = athena.start_query_execution(QueryString=query, QueryExecutionContext={
'Database': 'db'
}, ResultConfiguration={
'OutputLocation': 's3://bucket1/',
})
key = response['QueryExecutionId'] + '.csv'
copy_source = {
'Bucket': 'bucket1',
'Key': key
}
s3.meta.client.copy(copy_source, 'bucket2', 'main.csv')
Ошибка: -
Traceback (most recent call last):
File "/Users/tanmaysinghal/Vizualization/Python Scripts/test.py", line 23, in <module>
s3.meta.client.copy(copy_source, 'bucket2', 'main.csv')
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/boto3/s3/inject.py", line 379, in copy
return future.result()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/s3transfer/futures.py", line 106, in result
return self._coordinator.result()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/s3transfer/futures.py", line 265, in result
raise self._exception
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/s3transfer/tasks.py", line 255, in _main
self._submit(transfer_future=transfer_future, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/s3transfer/copies.py", line 110, in _submit
**head_object_request)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/botocore/client.py", line 357, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/botocore/client.py", line 661, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (404) when calling the HeadObject operation: Not Found