Skip to content

Instantly share code, notes, and snippets.

@tiagomatos
Created December 8, 2017 16:44
Show Gist options
  • Save tiagomatos/5ea1ebc1c59dbdee48ebb30aee51b6cd to your computer and use it in GitHub Desktop.
Save tiagomatos/5ea1ebc1c59dbdee48ebb30aee51b6cd to your computer and use it in GitHub Desktop.
Restore S3 Objects from Glacier
s3 = Aws::S3::Resource.new
keys = s3.bucket("jumpseller").objects(prefix: "store/store-name/").collect(&:key)
keys = keys.delete_if {|key| key.include?('themes') || key.include?('assets') || key.include?('pages') || key.include?('logo') } # selecting only products.
keys.each do |key|
p key
object = s3.bucket('jumpseller').object(key)
begin
object.restore_object({
restore_request: {
days: 1,
glacier_job_parameters: {
tier: "Expedited"
},
},
})
sleep 0.25
rescue Aws::S3::Errors::RestoreAlreadyInProgress
p "Aws::S3::Errors::RestoreAlreadyInProgress"
rescue Aws::S3::Errors::GlacierExpeditedRetrievalNotAvailable
p "Aws::S3::Errors::GlacierExpeditedRetrievalNotAvailable"
sleep 1
retry
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment