2017-01-03 8 views
2

Итак, я новичок в amazon s3 и задавался вопросом, может ли кто-нибудь помочь ответить на эти вопросы.Как aws s3 обрабатывает переписывание файла и доступ?

У меня есть набор статических файлов API/JSON, которые используются для питания мобильного приложения, в то время как данные JSON по большей части являются статическими, обновление может быть запущено в любое время, в результате чего данные обновляются, а Файл JSON также обновляется.

Мои вопросы: как amazon обрабатывает обновления файлов в отношении доступа, что я имею в виду, если кто-то обращается к файлу в то время, когда я хочу писать, будет ли он заблокирован или какой-либо сотрудник amazon будет использовать некоторый кеш-файл чтобы это не происходило.

Спасибо!

+0

Если вас беспокоит устаревшие данные в вашем API, вы можете использовать Dynamodb с условной записью и строго согласованными чтениями. Условные записи позволят изменять данные, если данные не изменились со времени предыдущего чтения. И [Сильно последовательное чтение] (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 обеспечивает постоянство записи после записи для ПУСТ новых объектов.

S3 обеспечивает возможную согласованность для перезаписывания ПУТС и УДАЛЕНИЙ. Это означает, что user2 может получить устаревшую версию JSON, даже если пользователь1 заменил ее (подсечку).

+0

Спасибо Дэйв! Это должно работать тогда, в основном я запускаю свое приложение для поиска обновлений на основе ключа кеша после того, как будут сделаны обновления, и это обновление только после создания Json-файла, поэтому я не носорог. Я столкнусь с проблемами. – proxim0

2

Фактически вы не можете обновлять объекты в S3. Все, что вы можете сделать, это хранить, извлекать и удалять весь объект. Чтобы «обновить» содержимое объекта, вы заменяете весь объект.

Если клиент A загружает заменяющий объект, и до того, как загрузка будет подтверждена, клиент B обращается к одному и тому же объекту, тогда я ожидаю, что клиент B получит исходный объект. После подтверждения, но до того, как объект был полностью распределен и согласован, клиент B может получить старый объект или новый объект. После этого клиент B получит новый объект.