繁体   English   中英

亚马逊s3 - 红宝石。 获取刚刚上传的资源的URL

[英]Amazon s3 - ruby. Get the URL of the resource that was just uploaded

我有以下代码用于将本地文件上传到Amazon S3 Bucket:

require 'aws/s3'
module AmazonS3

  def self.upload_file(local_file)
    bucket_name = "bucketfortest"

      s3 = AWS::S3.new(
        :access_key_id     => ENV["AMAZON_ACCESS_KEY"], 
        :secret_access_key => ENV["AMAZON_SECRET_KEY"] 
      )


    key = File.basename(local_file)

    amazon_object = s3.buckets[bucket_name].objects[key].write(:file => local_file)
    return amazon_object #How can I get the URL of the object here?

  end
end

我基于这个代码: Upoad文件S3我试图找到一种方法来获取刚刚上传的对象的URL,但我找不到它是什么。 我试过.url ,但这给了我一个未定义的方法。 我也没有在文档中看到任何内容。

我根本没有使用过Ruby AWS SDK,但看起来你可以这样做:

获取公共网址

return amazon_object.public_url

或者私有对象签名URL

return amazon_object.url_for(:read, :expires => 10*60)

你知道url,因为它与本地文件的文件名是相同的url。 因此,您可以从文件名和存储桶名称组成URL,而不会从S3获取除成功之外的任何信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM