2017-01-14 14 views
0

私はBoto3ライブラリを使用して、S3のファイルのダウンロードリンクを取得しています。ファイルのaclpublic-readに追加した後でも、generate_presigned_post応答から返されたファイルURLにアクセスすると「アクセス拒否」という応答が返されます。Boto S3:ファイルを公開する

私のbotoコード:

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

がどのように私はダウンロードして、このS3のファイルにアクセスすることができますか?

答えて

2

presigned-postを生成すると、固有のURLを作成して使用することができます。POST(s3バケットにファイルをアップロードする)。

ファイルを取得する場合は、GET -requestを作成する必要があります。

バケットが「公共の読み取り」であれば、あなたはどのpresigned要求を生成する必要はありません。

私はまだこれをテストしていませんが、私は、このファイルをダウンロードするためにトリックを行うだろうと思います。

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

あなたは他の誰かが使用するダウンロードリンクを作成したい場合は、を生成予約済みGETリクエスト

+0

ありがとうございました! – Paul

関連する問題