3

boto と python を使用して特定の場所にファイルをアップロードしようとしています。私はこの効果に何かを使用してアクセスしています:

from boto.s3.connection import S3Connection
from boto.s3.key import Key


conn = S3Connection(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
bucket = conn.get_bucket('the_bucket_name')
for key in bucket: 
    print key.name

これがトリックです。バケット内の「フォルダ」に認証情報をプロビジョニングしました。これについて - Amazon S3 boto - フォルダを作成する方法は? s3には実際にはフォルダーがなく、「foo/bar/my_key.txt」のようなキーがあることを理解しています。get_bucket() を実行しようとすると、

boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden

バケットキーのサブセットではなく、実際にはベースバケットへの資格情報を持っていないためです。 my_bucket/the_area_I_have_permission/*

接続ステップでアクセスできるバケット内の特定の「エリア」を渡す方法を知っている人はいますか? またはアクセスに使用できる代替方法はmy_bucket/the_area_I_have_permission/*

4

2 に答える 2

2

これは役に立ちますか :

bucket = conn.get_bucket('the_bucket_name',validate=False)

key = bucket.get_key("ur_key_name")
if key is not None:
    print  key.get_contents_as_string()

keys = bucket.list(prefix='the_area_I_have_permission')
for key in keys:
    print key.name
于 2013-07-08T23:00:29.333 に答える
1

問題が見つかりました。 PHP S3 クラスを使用した RequestTimeTooSkewed エラー

問題は、VM の日付がずれていて、Amazon がその日付を使用してリクエストを検証することでした。@bdonlanに1+。

于 2013-07-09T15:23:18.183 に答える