- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
那么,首先,我将向您介绍我要实现的目标。我在 S3 上托管了一堆照片。它们是汽车照片,由 VIN 组织。在创作时,我并不总是有 VIN,所以我做了一个假的。稍后,当使用正确的 VIN 更新时,我想更新 S3 上的文件夹名称。无法重命名 S3 中的内容,所以我必须使用新名称进行复制,并删除原始名称。呸!现在谈谈我是如何失败的……
creds = ::Aws::Credentials.new(Settings.aws.access_key_id, Settings.aws.secret_access_key)
s3 = ::Aws::S3::Client.new(region: 'us-west-1', credentials: creds)
bucket = Settings.aws.bucket
s3.copy_object(bucket: bucket, copy_source: "#{bucket}/foo", key: 'bar')
s3.delete_object(bucket: bucket, key: "#{bucket}/foo")
这不起作用... Aws::S3::Errors::NoSuchKey: The specified key does not exist.
调用 copy_object 时。 copy_source 是一个文件夹,所以它不像普通对象那样工作,没关系。
于是,我环顾四周,发现我必须调用:
s3 = ::Aws::S3::Resource.new(region: 'us-west-1', credentials: creds)
bucket = bucket = s3.bucket(Settings.aws.bucket)
bucket.objects.with_prefix('foo/').each do |object|
object.copy_from(copy_source: "#{bucket}/foo")
end
这不起作用...请注意我正在调用 ::Resource
现在,因为我不知道如何从 ::Client
得到一个桶.通过以上,我得到 NoMethodError: undefined method 'with_prefix' for #<Aws::Resources::Collection:0x007fad587255a8>
with 让我感到困惑,因为我阅读的所有内容似乎都指向该解决方案。
我使用的是 AWS SDK v2。不确定我是否正在查看 v1 解决方案?
我不知道 copy_from
是怎么来的工作,老实说......我真正想要的是copy_to
这似乎不在文档中。
最佳答案
aws-sdk v2 中“bucket”类的“objects”方法返回 Collection的 ObjectSummary (参见:http://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Bucket.html#objects-instance_method)。
要查询带有前缀的对象列表,您应该使用:
bucket.objects({prefix: 'some_prefix'})
关于ruby-on-rails - Aws::S3 未定义的方法 'with_prefix' on a::Resource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27914557/
那么,首先,我将向您介绍我要实现的目标。我在 S3 上托管了一堆照片。它们是汽车照片,由 VIN 组织。在创作时,我并不总是有 VIN,所以我做了一个假的。稍后,当使用正确的 VIN 更新时,我想更新
我是一名优秀的程序员,十分优秀!