ruby-on-rails - 使用 Ruby 在 S3 中重命名对象

标签 ruby-on-rails ruby amazon-s3

我想使用 Ruby SDK 重命名 s3 中的项目。我该怎么做?

我试过:

require 'aws-sdk'
s3 = AWS.config(
        :region => 'region',
        :access_key_id => 'key',
        :secret_access_key => 'key'
)

b = AWS::S3::Bucket.new(client: s3, name: 'taxalli')


    b.objects.each do |obj|
       obj.rename_to('imports/files/' + line.split(' ').last.split('/').last)
      end

但我在新的 SDK 中看不到任何移动或重命名的内容。

最佳答案

在 AWS-SDK 版本 2 中,现在有一个名为“move_to”(http://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Object.html#move_to-instance_method)的方法,您可以在这种情况下使用它。从技术上讲,它仍然会在 S3 上复制和删除该文件,但您不需要手动复制和删除它,最重要的是,如果复制操作因某种原因失败,它不会删除该文件。

关于ruby-on-rails - 使用 Ruby 在 S3 中重命名对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31550527/

相关文章:

ruby-on-rails - "random: nonblocking pool"在 Ubuntu 16.04 服务器上初始化需要很长时间

ruby-on-rails - 在 rails3 中使用非英语 Controller

ruby-on-rails - rails : stack level too deep

ruby - 在 Ruby 中使用多个 'gsub' 实例

amazon-web-services - AWS API Gateway - Lambda - 内部服务器错误

ruby-on-rails - 如何自定义 rails activerecord 验证错误消息以显示属性值

ruby - 给定一个 Ruby 对象的实例,我如何获得它的元类?

ruby-on-rails - Rails 3 命名空间路由 : how to link *from* a namespace back to the global namespace? [已修订]

java - 在 EC2 实例上运行时,Amazon S3 不返回响应或抛出错误

go - S3 存储桶命名策略问题并尝试将 SDK 生成的请求发送到实现 S3 API 的 API