2017-01-06 2 views
1

Я ищу переход от версии 1 AWS SDK для Ruby к версии 2. Однако я попал в заблуждение с управлением версиями объекта S3.Извлечение всех версий объекта S3

Учитывая ссылку на объект S3 в версии 1 API вы можете получить все версии только для этого объекта: http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/S3/S3Object.html#versions-instance_method

Однако версия 2 API, кажется, не тиражировать эту функцию: http://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Object.html

Я что-то упускаю?

+0

так что я могу использовать API-интерфейс bucket: _bucket.object_versions (: prefix => 'key'). Each {| version | ...} _ Разве это единственный способ использовать V2? –

ответ

0

Я думаю, что вы правы, и эта функция отсутствует в V2 API. Я считаю, что ваши единственные варианты: bucket.object_versions или client.list_object_versions.

Вы можете получить все версии объекта S3 из ведра, как это:

# Retrieve Collection<ObjectVersion> 
Aws::S3::Bucket.new('bucket-name') 
    .object_versions(prefix: 'object-key') 
    .reject { |version| version.key != 'object-key' } 

Я думаю, что Рубин SDK сделал эти изменения, чтобы лучше отражать API S3 REST, где versions является его собственный субресурс и объекты не имеют никакой информации об их собственной истории версий.

Смежные вопросы