54

次を使用してバケットにキーを保存しています。

    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 にアクセスするにはどうすればよいですか?

4

3 に答える 3

98

キーが公開されている場合 (上記のように)、次を使用できますKey.generate_url

url = key.generate_url(expires_in=0, query_auth=False)

キーが非公開で、期限切れの URL を生成して、直接アクセスできない人とコンテンツを共有したい場合は、次のようにします。

url = key.generate_url(expires_in=300)

URL の有効期限がexpires切れるまでの秒数です。これらは HTTPS URL を生成します。HTTP URL を使用する場合は、次を使用します。

url = key.generate_url(expires_in=0, query_auth=False, force_http=True)
于 2013-04-22T23:20:35.257 に答える
31

Boto3の場合、次の方法で行う必要があります...

import boto3

s3 = boto3.client('s3')
url = '{}/{}/{}'.format(s3.meta.endpoint_url, bucket, key)
于 2015-10-23T07:43:25.350 に答える
8
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')

それが、パブリック URL の boto 2.23.0 で行った方法です。expires_in=None 引数を機能させることができませんでした。

HTTPS の場合、サブドメインは使用できないことに注意してください。

于 2014-02-13T21:21:06.950 に答える