Ошибка при загрузке файла на мое локальное устройство с S3 - PullRequest
0 голосов
/ 04 января 2019

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

Ниже приведен код, который я написал:

    import boto3
    import botocore

    BUCKET_NAME = 'my-bucket' 
    KEY = 'my_image_in_s3.jpg' 

    s3 = boto3.resource('s3')

    try:
        s3.Bucket(BUCKET_NAME).download_file(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

Может ли кто-нибудь помочь мне в этом. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 04 января 2019

AWS использует систему общих учетных данных для интерфейса командной строки AWS и всех других SDK AWS, таким образом, нет риска утечки ваших учетных данных AWS в какое-либо хранилище кода, в соответствии с рекомендациями по безопасности AWS рекомендуется использовать файл общих учетных данных, который обычно находится в linux

~/.aws/credentials 

этот файл содержит ключ доступа и секретный ключ, который используется всеми sdk и aws cli файл, файл может быть создан вручную или автоматически с помощью этой команды

aws configure

он задаст несколько вопросов и создаст для вас файл учетных данных, обратите внимание, что вам необходимо создать пользователя с соответствующими правами доступа перед доступом к ресурсам aws.

Для получения дополнительной информации нажмите на ссылку ниже -:

Конфигурация AWS cli

0 голосов
/ 04 января 2019

Вы не используете созданный вами сеанс для загрузки файла, вы используете созданный клиент s3. Если вы хотите использовать клиент, вам нужно указать учетные данные.

your_bucket.download_file('k.png', '/Users/username/Desktop/k.png')

или

s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
s3.download_file('your_bucket','k.png','/Users/username/Desktop/k.png')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...