3

S3CORSとキーの有効期限を使用して「スプールバケット」を作成したいと思います。このスプールバケットは、以下をサポートする必要があります。

  • HTTP PUTフロントエンドコード(jQueryなど)は、バケットへのキーに任意の名前を付けることができる必要があります
  • バックエンドコード(たとえば、Python / boto)は、キー名を指定して、これらのキーを読み取って削除できる必要があります
  • キーはX日後に自動的に期限切れになります

これはどの程度正確に達成する必要がありますか?

4

1 に答える 1

4

少しいじった後、私が見つけたものは次のとおりです。

  • バケットを作成する
  • 全員にアクセス許可のアップロード/削除および編集アクセス許可を付与します(APIを使用すると簡単なはずですが、私の場合はコンソールを使用した方が簡単でした)。
  • 次の(または同様の)CORSポリシーを設定します。
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*.example.com</AllowedOrigin>
        <AllowedMethod>PUT</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>
  • 希望に合わせてオブジェクトライフサイクルポリシーを設定します(ここでも、APIを使用すると簡単になり、私の場合はコンソールを使用すると簡単になります)
  • PUTを実行するときは、ヘッダーを追加しますx-amz-acl: bucket-owner-full-control。たとえば、CoffeeScriptとjQueryでは、PUTは次のようになります。
$.ajax http://my_spool_bucket.s3.amazonaws.com,
    type: "PUT"
    data: "contents of new object"
    headers:
        "x-amz-acl": "bucket-owner-full-control"

それでおしまい。高可用性、自己消去、CORS互換、安価で簡単なHTTPスプールスペースの栄光を満喫してください。覚えておくべき重要なことの1つは、どのクライアントもどのキーも上書きできるということです。それに応じて設計する必要があります(暗号的に安全な生成キーを使用します)。

于 2013-01-10T16:35:14.953 に答える