我正在使用以下代码将一个键保存到桶中:
key = bucket.new_key(fileName)
key.set_contents_from_string(base64.b64decode(data))
key.set_metadata('Content-Type', 'image/jpeg')
key.set_acl('public-read')
保存成功后,我如何访问新创建文件的URL?
我正在使用以下代码将一个键保存到桶中:
key = bucket.new_key(fileName)
key.set_contents_from_string(base64.b64decode(data))
key.set_metadata('Content-Type', 'image/jpeg')
key.set_acl('public-read')
保存成功后,我如何访问新创建文件的URL?
如果密钥为公共可读(如上所示),则可以使用Key.generate_url
:
url = key.generate_url(expires_in=0, query_auth=False)
如果密钥是私有的,并且您想生成一个过期的URL,与某个没有直接访问权限的人分享内容,您可以执行以下操作:url = key.generate_url(expires_in=300)
其中 expires
是 URL 过期前的秒数。这些将生成 HTTPS URL。如果您想要 HTTP URL,请使用以下方式:
url = key.generate_url(expires_in=0, query_auth=False, force_http=True)
expires_in=0
。而expires_in=None
会导致错误。 - Dirkexpires_in=0
表示“立即过期!” - Dragon Dave对于Boto3,您需要按照以下方式进行...
import boto3
s3 = boto3.client('s3')
url = '{}/{}/{}'.format(s3.meta.endpoint_url, bucket, key)
import boto
from boto.s3.connection import S3Connection
conn = S3Connection('AWS_ACCESS_KEY', 'AWS_SECRET_KEY')
secure_https_url = 'https://{host}/{bucket}/{key}'.format(
host=conn.server_name(),
bucket='name-of-bucket',
key='name_of_key')
http_url = 'http://{bucket}.{host}/{key}'.format(
host=conn.server_name(),
bucket='name-of-bucket',
key='name_of_key')
http_url
,只需将 https 替换为 http。 - Jordan Reiter