2012-09-29 135 views
11

バケット内のオブジェクトのファイル名と同じファイル名でS3にファイルをアップロードすると、上書きされます。同じファイル名でファイルを上書きしないようにするには、どのようなオプションがありますか?私はバケツでバージョン管理を有効にして問題を解決できると考えましたが、オブジェクトはまだ上書きされています。Amazon S3が同じ名前のオブジェクトを上書きしないようにする

+0

わかりませんが、 このオブジェクトのACLを読み取り専用に設定することはできません。つまり、あなたがアップロードしたオブジェクトごとです。 – Prinzhorn

+0

誰にでもファイルが見えるため、ACLをpublicに設定しています。 – CyberJunkie

答えて

6

上記のコメントは機能しません。私はWRITEのACLがオブジェクトにも適用されると思っていましたが、バケットだけで動作します。

バージョン管理を有効にしたため、オブジェクトは上書きされません。しかし、GETリクエストまたはURLにバージョンを指定しないと、最新バージョンが使用されます。つまり、S3にオブジェクトを配置してオブジェクト化すると、最初のオブジェクトを取得するためにレスポンスが通知するversionIDを保存する必要があります。

Amazon S3 ACL for read-only and write-once accessを参照してください。

+0

ありがとう!私はそれを試みます。 – CyberJunkie

2

制限付きのアクセス許可でIAMユーザーを構成することもできます。書き込みはまだ書き込み(すなわち更新)ですが、IAMユーザーを使用することはいずれにしてもベストプラクティスです。

所有者(「長期アクセスキーと秘密鍵」)は、完全に無効にしない限り、完全に制御できます。

+0

ありがとう、私はそれを考えていない。 AWSで設定することができれば、更新/上書きできないユーザーが理想的です。 – CyberJunkie

+1

文書をもう一度確認する必要があります。 S3が_write_と_update_の違いを理解しているかどうかはわかりません。私は既定(つまり、フルアクセス許可)で、書き込みと更新が同じものとして扱われることを知っています。 –

1

DBを使用して、すべてのファイルの鍵をs3バケットに格納する場合の私の提案です。

ランダムキーを生成します。 nullエントリを許可するUNIQUE制約のあるフィールドに、DBのキーの挿入/更新を試みます。 キーが使用されなかった場合は、一意のキーが得られるまで繰り返します。

次に、自分の知っているキーをs3上に置いてください。

関連する問題