버킷의 일부 내용을 다른 aws 계정의 버킷으로 복사하려고합니다. 먼저 업 로더 객체를 해시로로드합니다. 그런 다음 다른 버킷에 연결하고 해당 버킷의 자격 증명을 사용하여 자산을 저장하려고했습니다. 콘솔의 다른 하나의 버킷으로부터 단일 화상을 저장하려는CarboxWave Ruby gem을 사용하여 s3 버킷을 다른 aws 계정에 복사
는task :product_color_images => :environment do
CarrierWave.configure do |c|
c.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => ENV['COPY_FROM_AWS_KEY_ID'],
:aws_secret_access_key => ENV['COPY_FROM_AWS_KEY']
}
c.fog_directory = 'orig-bucket' # bucket copied from
end
image_storage = {}
ProductImage.all.each do |image|
puts 'storing product image'
image_storage[image.id] = image.image
end
CarrierWave.configure do |c|
c.reset_config
c.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => ENV['COPY_TO_AWS_KEY_ID'],
:aws_secret_access_key => ENV['COPY_TO_AWS_KEY']
}
c.fog_directory = 'target-bucket' # bucket copied to
end
image_storage.each do |k, v|
image = ProductImage.find(k)
image.image = v
puts 'saving product image'
image.save
end
end
대상 버킷의 주소를 사용하지 않는 것을 알 수있다.
ruby-1.9.2-p290 :026 > image = ProductImage.find(197)
ruby-1.9.2-p290 :027 > image.image = image_storage[197]
=> https://orig-bucket.s3.amazonaws.com/uploads/product_image/image/197/product_image.png
ruby-1.9.2-p290 :028 > image.save
ruby-1.9.2-p290 :029 > image.image
=> https://orig-bucket.s3.amazonaws.com/uploads/product_image/image/197/product_image.png
b3을 사용하여 s3cmd를 설치했습니다. 첫 번째 계정을 구성하고 버킷을 다운로드했습니다. 은 두 번째 계정에 대해이 계정을 구성하고 내용을 다른 버킷에 업로드했습니다. 그런 다음 aws 웹 콘솔에 로그인하고 폴더를 선택하고 작업 메뉴를 사용하여 내용을 공용으로 설정하십시오. – schwabsauce