#boto3
Вопрос:
Я создал функцию для загрузки файлов из S3. Логика такова: я перечисляю корзины, выбираю корзину, затем файл списка, а затем выбираю файл для загрузки, однако я сталкиваюсь с ошибкой. Это ведро пусто или некоторые другие ошибки, когда я пытаюсь реализовать другой код. Вероятно, проблема очень проста, я просто не вижу ее. пожалуйста, помогите. Код с комментариями — это еще один код, который я пробовал. Выбор корзины и файла выполняется так, как это предполагается, и выводится с помощью печати правильного имени файла в интерфейсе консоли.
def function_for_f(s3_handle=None):
##list buckets
## list files then
##download the file
selected_bucket_name_origin = select_buckets(s3_handle=s3_handle)
print(f"Selected bucket was: {selected_bucket_name_origin}")
# Retrieve the bucket's objects
objects = list_bucket_objects_aws(s3_handle=s3_handle, bucket_name=selected_bucket_name_origin)
if objects is not None:
obj_count=0
# List the object names
for obj in objects:
print(f'{obj_count}. {obj["Key"]}')
obj_count = obj_count 1
if obj_count > 0:
object_to_copy_index = input('Which object to copy?')
print(f'Dowloading {objects[int(object_to_copy_index)]["Key"]}')
# # Download the object
# try:
# s3_handle.Bucket(selected_bucket_name_origin).download_file(objects[int(object_to_copy_index)]["Key"], 'my_local_image.jpg')
# except botocore.exceptions.ClientError as e:
# if e.response['Error']['Code'] == "404":
# print("The object does not exist.")
# else:
# raise
if s3_handle.download_file(selected_bucket_name_origin, objects[int(object_to_copy_index)]["Key"], '1.txt'):
logging.info(f'{obj["Key"]} was dowloaded from {selected_bucket_name_origin}')
else:
print('Bucket is empty')
Комментарии:
1. Вы получаете сообщение об ошибке?
2. Я получаю код из заявления else. Ведро пустое, так что по какой-то причине мой блок if не срабатывает