2017-01-14 5 views
0

Я использую библиотеку Boto3, чтобы захватить ссылку для скачивания файла S3. Даже после добавления acl для файла в public-read, я получаю ответ «отказ в доступе» при попадании файла, возвращаемого с ответа generate_presigned_post.Boto S3: сделать файл общедоступным

Мой бото код:

client = boto3.client('s3') 
response = client.generate_presigned_post(
    Bucket='bucketname', 
    Key='filename.csv', 
    Fields={ 
     'acl': 'public-read' 
    }, 
    ExpiresIn=3600) 

Как я могу сделать этот s3 файл доступен для загрузки?

ответ

2

Когда вы создаете назначенный пост, вы создаете уникальный URL-адрес, который может использоваться для POST (загрузить) файл в s3-bucket.

Если вы хотите получить файл, вы должны сделать GET -request.

Если ведро «общественное чтение», вам не нужно генерировать любой presigned запроса.

Я не проверял это, но я предполагаю, что это будет делать трюк для того, чтобы скачать файл:

key = bucket.get_key('filename.csv') 
key.get_contents_to_filename('local_filename.csv') 

Если вы хотите создать ссылку для загрузки кто-то еще, чтобы использовать, генерировать назначенныйGETзапрос.

+0

Спасибо за помощь! – Paul

Смежные вопросы