使用Ruby aws-sdk选择并使用AWS s3对象密钥的一部分

时间:2016-03-03 20:28:24

标签: ruby amazon-web-services amazon-s3 aws-sdk

我试图仅列出来自s3文件夹(不是我知道的真实文件夹)中的对象distribution,但我想删除对该名称的引用以及对象周围的任何斜杠。输出应该看起来像021498cd-ca73-4675-a57a-c12b3c652aac,而目前看起来像distribution/021498cd-ca73-4675-a57a-c12b3c652aac/

到目前为止,我已经尝试过了;

def files
    s3 = Aws::S3::Resource.new


    s3.client
    bucket = s3.bucket('test')
    files = []

    bucket.objects.each do |obj|
     if obj.key.include?('distribution/')
      temp_files = puts "#{obj.key}"
      files = temp_files.select do |file|
        file.gsub("distribution/", "")
      end
    else
    end
 end
end

但这似乎根本不起作用。

1 个答案:

答案 0 :(得分:1)

您的解释非常简单,但您的代码暗示其他内容。

然而,这应该有助于你想要实现的目标。

def files
  s3 = Aws::S3::Resource.new

  s3.client
  bucket = s3.bucket('test')
  files = []

  bucket.objects.each do |obj|
    if obj.key.include?('distribution/')
      files << "#{file.gsub(/(distribution)|\//, '')}"
    end   
  end
end

files数组将包含垃圾剥离的所有文件名。