Получение файла URL после загрузки amazon s3 python, boto3 - PullRequest
0 голосов
/ 05 ноября 2018

Я просто новичок с boto3 , и я не могу понять, как я могу получить URL-ссылку для файла, который я только что загрузил в s3 amazon.

Пожалуйста, уточните.

Спасибо

import boto3

s3 = boto3.resource('s3')

data = open ('file.xlsx', 'rb')
s3.Bucket ('dimxxx1').put_object (Key='file.xlsx', Body=data)

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Во-первых, лучший способ загрузки будет:

import boto3
s3 = boto3.resource('s3')
s3.Bucket('dimxxx1').upload_file('/tmp/file.xlsx', 'file.xlsx')

Чтобы получить URL, вы можете построить его из основных элементов:

http://s3-REGION-.amazonaws.com/BUCKET-NAME/KEY

Например:

http://s3-ap-southeast-2.amazonaws.com/dimxxx1/file.xlsx
0 голосов
/ 05 ноября 2018

Вот исправление этой проблемы, позволяющее получить URL-адрес файла S3, как предлагается по этой ссылке . В основном вам необходимо создать предварительно подписанный URL для каждого объекта S3, к которому вы хотите предоставить доступ. Смотрите код ниже:

import boto3

# Get the service client.
s3 = boto3.client('s3')

# Generate the URL to get 'key-name' from 'bucket-name'
url = s3.generate_presigned_url(
    ClientMethod='get_object',
    Params={
        'Bucket': '<bucket-name>',
        'Key': '<key-name>'
    }
)

Измените и на ваш контейнер S3 и имя файла, который был загружен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...