2017-03-06 15 views
0

私はs3の中にExcelファイルを持っています。さまざまなプログラムが読み書きするので、私はそれぞれが読んだバージョンに書き込んでいることを保証する必要があります。AWS S3に楽観的なロックがありますか?

+1

"*それぞれが読んだバージョンに書き込むことを保証する必要があります*" S3のオブジェクトの "バージョンに"書き込むことはできません。 S3 *への書き込みは常に新しいバージョンを作成します。 –

+1

私は、各ユーザーが読んだ後に最も近いバージョンを作成できることを意味しました。 – XY6

答えて

4

S3は、新しく作成されたオブジェクトの書き込みの一貫性と、オブジェクトの上書きと削除の最終的な一貫性のあいだ、読み取りのみを保証します。 Excelファイルが十分に小さい場合(400KB未満)は、DynamoDBアイテムのバイナリ属性に格納し、バージョン属性で条件付き更新を使用して、ファイルの書き込み後の整合性を確保することができます。それ以外の場合は、ファイルのサイズが400KBを超えている場合は、s3の新しいキーにファイルの各バージョンをアップロードしてから、バージョニングされたDynamoDBアイテムのs3 URLを最新バージョンのファイルにトラッキングすることができます。

2

これはS3では不可能です。

具体的には、現在表示されているバージョンが上書きされていないか、非常に最近上書きされた可能性があるかどうかを最終的かつ正式に判断することは不可能です。現在のバージョンが完了するまでまたは短時間後にとなります。これは、最終的な上書きの一貫性モデルのためです。

これは、バケットのバージョン管理が有効になっていない場合でも該当します。オブジェクトを上書きしても上書きが完了してから少し前のバージョンをダウンロードすることは可能ですが、時にはです。

GETHEADとListObjectsはすべて最終的に一貫しています。

関連する問題