В док говорит
Если вы включаете управление версиями для корзины, 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.
В любом случае, однако, идентификатор версии не имеет смысла при отсутствии ключа компании, потому что вы не можете получить объект только по идентификатору версии - только по ключу + идентификатору версии.
Взятые вместе, подходящим курсом действий, казалось бы, было бы работать с предположением, что идентификаторы версий ограничены областью действия и имеют смысл только на уровне ключа объекта.