AWS S3 - 将KEY设置为什么?

时间:2017-12-08 02:10:28

标签: python amazon-s3 boto3

我已经获得了使用python从s3://x.y.z/下载数据的说明,其中x,y,z当然是占位符。

我已经设置好运行以下代码

import boto3
import botocore

BUCKET_NAME = 'my-bucket' # replace with your bucket name
KEY = '???' # replace with your object key
LOCAL_TARGET = 'some.data'

s3 = boto3.resource('s3')

try:
    s3.Bucket(BUCKET_NAME).download_file(KEY, LOCAL_TARGET)
except botocore.exceptions.ClientError as e:
    if e.response['Error']['Code'] == "404":
        print("The object does not exist.")
    else:
        raise

但我尝试猜测将BUCKETKEY设置为什么导致404错误。

根据以下信息,适当的值是什么?

  

数据已上传到s3://x.y.z/

1 个答案:

答案 0 :(得分:2)

密钥将是您要下载的文件名,例如

http://s3.amazonaws.com/goat-bucket/farms/andys/goat.png

桶:goat-bucket

键:farms/andys/goat.png

如果您不知道对象名称,可以列出goat bucket的对象名称,如下所示:

import boto3

s3 = boto3.resource('s3')
bucket = s3.Bucket('goat-bucket') # Using the bucket name above
for object in bucket.objects.all():
    print('Bucket name: ' + object.bucket_name)
    print('Object key: ' + object.key)

输出:

Bucket name: goat-bucket
Object key: farms/andys/goat.png