android amazon sdk S3 странная проблема для putObject - PullRequest
0 голосов
/ 13 февраля 2012

Я обнаружил одну странную вещь, когда использую amazon's aws-android-sdk.Мое приложение поместило некоторые файлы в корзину, и после этого, когда я пытаюсь получить этот файл с другого устройства - файл может быть удален (возможно, это 1 из 15 попыток).Но через некоторое время (не долго) - файл появляется и я могу его взять.Мой код здесь:

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

После этого я проверяю, что результат не равен нулю, и отправляю уведомление на другое устройство, чтобы получить этот файл.Почему я вижу эту задержку между отправкой и доступностью?Какой обходной путь для этого?

обновление: Мой другой телефон - iPhone, где я пытаюсь загрузить файл, используя предопределенный URL

Спасибо

1 Ответ

1 голос
/ 13 февраля 2012

Это называется «конечной последовательностью», и вы ничего не можете с этим поделать, кроме как ждать.Я обычно нахожу, что загрузка объекта в S3, а затем немедленная проверка, если он там (например, в течение 100 мс), часто будет неудачной.Ждать несколько секунд обычно нормально, но иногда кажется, что все может стать немного липким.

Более подробно ниже.Стандарт США, поскольку он хранит данные о левом и правом побережьях, может быть хуже в этом отношении.

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

...