首页 > 解决方案 > 如何将一个文件夹移动到 S3 存储桶中的另一个文件夹中?

问题描述

我需要将我的 S3 存储桶中的一个文件夹移动到另一个,存储桶 1 的标题为 DD.MM.YYYY,其中包含我要移动的 PDF,目标存储桶是“存档”。然后创建一个一次性的 rake 任务来执行这个动作。

这是我认为首先是我的 S3Util.rb 文件中的相关代码:

def pull_s3_objects(s3_folder)
        @s3_objects = s3_resource.bucket(bucket_name).objects(prefix: s3_folder)
        @s3_objects = yield(s3_objects) if block_given?
      end


def move_objects(ARCHIVE_FOLDER)
      
        s3_objects.each do |obj|
        #   MOVE EVERY S3 PDF FILE THAT WE PULLED BEFORE TO THE NEW LOCATION
        #   10.10.2020/file.pdf -> folder_name/10.10.2020/file.pdf

        end
      end

然后在我的 Rake 文件中。

task move_old_documents: :environment do
    bucket = Settings.file_storage.ocr_documents.s3_credentials.bucket

    file_util = Courts::Aws::FileUtil.new(bucket) # Should be called S3Util ?
    file_util.get_objects { |obj| obj.key.ends_with?('.pdf') } # TODO: get only pdf files that are in the folders with names dd.mm.yyy }
    file_util.move_objects('archive')
  end
end

当我尝试运行 rake 时,我收到了这个,可能与命名结构有关?因为它使用我的 S3Util.rb 文件和类。

rake aborted!
Don't know how to build task 'move_old_documents' (See the list of available tasks with `rake --tasks`)

我应该进入的任何指导/方向将不胜感激!

标签: ruby-on-railsrubyamazon-web-servicesamazon-s3

解决方案


推荐阅读