使用Amazon S3的Boto程式库,我怎样才能得到保存关键的网址是什么?(Using Amazo

2019-08-31 19:47发布

我一键节能与水桶:

    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')

保存成功后,如何才能访问新创建的文件的网址是什么?

Answer 1:

如果密钥是公开可读(如上图所示),可以使用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)


Answer 2:

对于Boto3,你需要做的是通过以下方式...

import boto3

s3 = boto3.client('s3')
url = '{}/{}/{}'.format(s3.meta.endpoint_url, bucket, key)


Answer 3:

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')

这就是我做了它在博托2.23.0为公共URL。 我不能让expires_in =无论证工作。

请注意,对于HTTPS,你不能使用子域名。



文章来源: Using Amazon s3 boto library, how can I get the URL of a saved key?