Назад | Перейти на главную страницу

Идентификатор версии объекта в amazon s3 уникален для файла, ведра или S3?

В док говорит

Если вы включаете управление версиями для корзины, Amazon S3 автоматически генерирует уникальный идентификатор версии для сохраняемого объекта.

Когда для сегмента включено управление версиями, могу ли я сказать идентификатор версии возвращается уникально для всех файлов в ведре?

Я не мог получить достаточно подробностей из их документов. Я что-нибудь пропустил?

Меня беспокоит Amazon говорит который

Нет ограничений на количество объектов, которые могут храниться в корзине, и нет разницы в производительности, используете ли вы много корзин или всего несколько.

Но идентификатор версииДлина 32.

Таким образом, он может генерировать до 2 ^ 32 идентификаторов, т.е. 4,29,49,67,296, право ? Так это ограничение на количество объектов, которые могут быть созданы в ведре?

Заранее спасибо.

С технической точки зрения, в будущем они могут быть длиннее:

Уникальные идентификаторы версий генерируются случайным образом, в кодировке Unicode, UTF-8, готовые для URL, непрозрачные строки длиной не более 1024 байтов

http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html

Однако, похоже, нет явного заявления относительно области действия этих идентификаторов.

Документация по ведению версий бакета (сейчас) включает это утверждение:

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

Предполагая, что это правильно, как написано, идентификатор версии привязан к ведру ... но я все еще скептически отношусь к этому. S3 иногда выполняет разбиение разделов индекса на сегменты из соображений производительности, и сохранение уникального идентификатора версии в разделах кажется маловероятным. Это действительно зависит от того, что на самом деле означает информация в идентификаторе версии, если она вообще что-нибудь означает. Он непрозрачный, поэтому, насколько нам известно, он может быть случайным.

В самом строгом смысле с точки зрения приложения они уникальны только для отдельного объекта, потому что, если объекты создаются в неверсированной корзине, а управление версиями позже включается в корзине, каждый объект, который существовал, когда управление версиями было включено, имеет тот же идентификатор версии. , которая является буквальной строкой null когда вы взаимодействуете с REST API.

В любом случае, однако, идентификатор версии не имеет смысла при отсутствии ключа компании, потому что вы не можете получить объект только по идентификатору версии - только по ключу + идентификатору версии.

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