2017-01-03 21 views
2

だから私はamazon s3を初めて使っていて、誰かがこの質問に答えるのを手伝ってくれるのだろうかと思っていました。aws s3がファイルを上書きしてアクセスする方法を教えてください。

ほとんどのJSONデータが静的であるうちに、モバイルアプリケーションに電力を供給するための静的API/JSONファイルがあります。更新はいつでも開始でき、データは更新され、 JSONファイルも同様に更新されました。

私の質問は、アクセスに関してファイルの更新をどのように処理するのか、つまり、私が書き込みたいと思っていた時点でファイルにアクセスしている場合、つまり、アマゾンの従業員がファイルキャッシュこれが起こらないようにします。

ありがとうございます!

+0

APIの古くなったデータが心配な場合は、条件付き書き込みと強固な一貫性のある読み込みでDynamobを使用できます。条件付き書き込みは、前回の読み出し以降にデータが変更されていない場合、データの変更を許可します。そして、[強く一貫した読み取り](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html)は、常にすべてのdynamodbノードに同じデータを与えます。 [条件付き書き込みを使用する](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithItems.html#WorkingWithItems.ConditionalUpdate) – strongjz

答えて

3

ブロックされませんが、オブジェクトが既に存在し、最近置き換えられたり削除されたりすると、古いデータが取得される可能性があります。

S3は、新しいオブジェクトのPUTSに読み取り後書き込み整合性を提供します。

S3は、PUTSとDELETESを上書きする最終的な整合性を提供します。つまり、user1がJSONを置き換えたとしても、user2が古いバージョンのJSONを取得する可能性があります。

+0

ありがとうDave!これはうまくいくはずです。基本的には、更新が行われた後にキャッシュキーに基づいてアップデートを探すためにアプリを起動します.Jsonファイルが作成された後に更新されるため、問題は発生しません。 – proxim0

2

S3のオブジェクトを実際に更新することはできません。できることは、オブジェクト全体を格納、取得、および削除することだけです。オブジェクトの内容を「更新」するには、オブジェクト全体を置き換えます。

クライアントAが置換オブジェクトをアップロードし、そのアップロードが確認される前にクライアントBが同じオブジェクトキーにアクセスすると、クライアントBが元のオブジェクトを取得すると考えられます。承認後、オブジェクトが完全に配布されて一貫性がある前に、クライアントBが古いオブジェクトまたは新しいオブジェクトを取得することがあります。その後、クライアントBは新しいオブジェクトを取得します。

関連する問題