2016-11-01 8 views
0

S3は新しく作成されたオブジェクトのための一貫性の読み取りをサポートしていますが、具体的には、というバージョンのキーを使用してドキュメントにアクセスするとき、バケットのバージョン管理が一貫性保証にどのように影響するかを理解したかったのです。 、私は一人でキーによってオブジェクトにアクセスするとき、(関わらず)バケットのバージョン管理の既存のオブジェクトを上書きする際に明らかにバケットのバージョン管理は、S3のリード・アンド・ライト・コンシステンシーの保証にどのように影響しますか?

put (new) then get  = strong (with one caveat; see below) 
put (overwrite) then get = eventual 
put then list   = eventual 
delete     = eventual 

:ここ

はS3が提供する一貫性の保証の私の現在の理解は、公式のAWSのドキュメントから収集します私は最終的に一貫した結果を得るでしょう。しかし、私がキーとバージョンでオブジェクトにアクセスすると、どうなりますか?定義された動作を指すAWSのドキュメントはありますか?

私の質問は、this questionと非常に関連していますが、1つの例外を除いて、次の警告からネガティブキャッシングの概念があります。 AWS docs state(強調鉱山):

Amazon S3は1つの警告とすべての地域でごS3バケット内の新しい オブジェクトのPUTSのための書き込み後読み取り一貫性を提供します。 注意:オブジェクトを作成する前にHEADまたはGET要求をキー名に( オブジェクトが存在するかどうかを調べるために)作成すると、Amazon S3はread-after-writeのために最終的な整合性を提供します( )。私は存在しない[email protected]に位置S3からオブジェクトを要求すると

、私はそのオブジェクトを置く/作成し、すぐに私は同じ[email protected]の要求を発行し、次の、行動は何ですか?

答えて

2

新しいオブジェクトが同じファイル名でアップロードされると、Amazon S3はデフォルトでオブジェクトを置き換えます。 Amazon S3 versioningが有効になっていると、S3は上書きまたは削除された場合でもファイルのすべてのバージョンを保持します。

ファイルの特定のバージョンは、KeyとVersion-Idの組み合わせで参照されます。実際には、バージョン番号はを有効にしてファイルをアップロードするとすぐに割り当てられます。

ファイル名が同じ(オブジェクトの最新バージョンを作成する)ファイルをアップロードすると、以前のバージョンでは元のバージョンIDが保持されます。

サンプルバージョン-Idがある:SnZzeMEz3ngtfBYWc53f_Juuzk5epXkG

あなたの質問は尋ねた:を「私は存在しません[email protected]に位置S3からオブジェクトを要求すると」。しかし、バージョンIDのランダムな性質を考えると、オブジェクトの存在しないバージョンを要求し、次のアップロードが予測されたバージョンIDを有するバージョンを作成することを期待することは不可能であろう。

オブジェクトのバージョンが作成されると、は同じバージョンIDを保持します。したがって、バージョンは更新されていないので、一貫性は関係ありません。唯一の変更点は、デフォルトの「現在のバージョン」が変更されるため、オブジェクトを更新した後にオブジェクトを取得すると最終的な一貫性が損なわれる可能性があることです。

+0

これは意味があります。私はバージョンが整数値の増加であるという印象を受けました。 –

+0

しかし、ここでも興味深い点があります。新しいバージョンが作成された後にバージョンIDで取得するとき。これは一貫していますか? ...私は新しいバージョンのIDを照会しなければなりません。アンサーを取得してください。基本的には、問題は次のとおりです。新しいバージョンの作成は、新しいオブジェクトの挿入(読み書き後の一貫性を持つ)として動作しますか? – Rafael

+0

@Rafael、古い質問にコメントを追加するのではなく、新しい質問を開始してください。 –

関連する問題