簡體   English   中英

如何在 Ruby 中將所有文件和子文件夾從一個文件夾復制到同一 AWS S3 存儲桶中的另一個文件夾

[英]How do I copy all Files and Sub-Folders from One Folder to another Folder in same AWS S3 bucket in Ruby

我在 S3 存儲桶名稱Houston 中創建了一個名為Backup的文件夾。 我有另一個文件夾名稱Logs ,我可以在其中查看所有應用程序日志。 日志文件夾中可能包含多個文件和子文件夾。 我想將所有文件和子文件夾從Logs文件夾復制到Backup文件夾。

我正在使用 Ruby AWS sdk。

沒有用於復制文件夾的 Amazon S3 API 調用。

您需要:

  • 列出源bucket的內容
  • 循環遍歷每個對象並使用CopyObject()將對象復制到另一個位置

使用適用於 Ruby 的 AWS 開發工具包復制對象 - Amazon Simple Storage Service

require 'aws-sdk-s3'

source_bucket_name = '*** Provide bucket name ***'
target_bucket_name = '*** Provide bucket name ***'
source_key = '*** Provide source key ***'
target_key = '*** Provide target key ***'

begin
  s3 = Aws::S3::Client.new(region: 'us-west-2')
  s3.copy_object(bucket: target_bucket_name, copy_source: source_bucket_name + '/' + source_key, key: target_key)
rescue StandardError => ex
  puts 'Caught exception copying object ' + source_key + ' from bucket ' + source_bucket_name + ' to bucket ' + target_bucket_name + ' as ' + target_key + ':'
  puts ex.message
end

puts 'Copied ' +  source_key + ' from bucket ' + source_bucket_name + ' to bucket ' + target_bucket_name + ' as ' + target_key

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM