繁体   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