2012-02-13 60 views
0

我發現一個奇怪的事情,當我使用亞馬遜的aws-android-sdk。我的應用程序將一些文件放入存儲區,之後當我嘗試從另一個設備獲取此文件時 - 文件可能會消失(它可能是15次嘗試中的1次)。但過了一段時間(不久) - 文件出現了,我可以拿走它。我的代碼在這裏:android亞馬遜sdk S3奇怪的問題putObject

final AWSCredentials credentials = new BasicAWSCredentials(sharedAccessKey,sharedSecretAccessKey); 
client = new AmazonS3Client(credentials); 
final PutObjectResult result = client.putObject(bucket, key, localFile); 

在此之後,我檢查結果不爲空,併發送通知到其他設備來獲取此文件。爲什麼我在發送和可用性之間看到這種延遲?什麼是解決方法?

更新:我的另一部手機是iPhone在哪裏使用presigned網址

感謝

回答

1

其所謂的「最終一致性」並沒有什麼可以做這件事,其他然後等待嘗試下載文件。我通常會發現上傳一個對象到S3,然後立即檢查它是否存在(比如在100ms內)通常會失敗。等待幾秒鐘通常很好,但有時候事情似乎會變得有點粘滯。

更多詳情如下。美國標準,因爲它將數據存儲在左側和右側海岸可能會更糟。

http://shlomoswidler.com/2009/12/read-after-write-consistency-in-amazon.html