AWS S3 Возможная согласованность: почему список корзины возвращает ключ, но запрос заголовка Нет - PullRequest
0 голосов
/ 23 декабря 2019

Я читаю документацию AWS и у меня есть вопрос относительно поведения моего приложения.

  1. Я делаю запрос get_key на несуществующий ключ.
  2. Затем я помещаю этот объект.
  3. Затем я делаю еще один get_key запрос к тому же ключу.

Теперь в документации объясняется, почему я могу получить Noneна шаге 3: «Предупреждение состоит в том, что если вы делаете HEAD или GET-запрос к имени ключа (чтобы найти, существует ли объект) перед созданием объекта, Amazon S3 обеспечивает возможную согласованность для чтения после записи». (из документов)

Что меня беспокоит, так это то, почему при вызове list в мое ведро после шага 2 отображается ключ (даже если на шаге 3 я все еще получаю Noneдля этого же ключа).

for k in bucket.list(some_path):
    key = k.get_key(k.name)

Большинство из них работают, но случайным образом некоторые возвращают None. Не должно ли быть так, что список возвращает key, только если он доступен? И как я могу убедиться, что в конечном итоге получу значение (есть ли система уведомлений, посредством которой я получаю уведомление о том, что шаг 3 действительно вернет мой объект, или же может быть выполнена повторная попытка по тайм-ауту -> скажем, подождите пару секунд и попробуйтеопять?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...