ValueError при загрузке файла из корзины S3 с использованием boto3? - PullRequest
1 голос
/ 07 февраля 2020

Я успешно загружаю файл изображения на свой локальный компьютер из моего хранилища S3, используя следующее:

import os
import boto3
import botocore

files = ['images/dog_picture.png']
bucket = 'animals'
s3 = boto3.resource('s3')

for file in files:
   s3.Bucket(bucket).download_file(file, os.path.basename(file))

Однако, когда я пытаюсь указать каталог, в котором изображение должно быть сохранено на моем локальном компьютере машина как это сделано в документах :

   s3.Bucket(bucket).download_file(file, os.path.basename(file), '/home/user/storage/new_image.png')

Я получаю:

ValueError: Invalid extra_args key '/home/user/storage/new_image.png', must be one of: VersionId, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, RequestPayer

Я, должно быть, что-то делаю не так, но я следую примеру в Docs. Может кто-нибудь помочь мне указать локальный каталог?

1 Ответ

4 голосов
/ 07 февраля 2020

Изучая документы, вы предоставляете дополнительный параметр

import boto3
s3 = boto3.resource('s3')
s3.Bucket('mybucket').download_file('hello.txt', '/tmp/hello.txt')

Из документов hello.txt - это имя объекта в корзине, а /tmp/hello.txt - это путь. на вашем устройстве, поэтому правильный путь будет

s3.Bucket(bucket).download_file(file, '/home/user/storage/new_image.png')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...