Amazon S3 Ruby SDK如何通过URL获取S3 Object

5

1
你正在使用哪个版本的 aws-sdk-ruby - Martin Zinovsky
我正在使用 gem 'aws-sdk','~> 2.3'。 - Mustafah
2个回答

0

我没有找到任何直接获取 S3 URL 并获取对象的方法。最终我只能自己解析它。


-1

不,AWS SDK for Ruby v2-3 不支持此功能。

但是,这里有一段快速的代码片段可以解决问题(它基于您提到的 Java 代码):

require 'aws-sdk-s3'

# @param uri [String] your fully-qualified URL
# @return head_object [Aws::S3::Types::HeadObjectOutput] metadata on object
def from_uri(uri)

    # Parse the S3 URL into its bucket and object key components
    uri = URI.parse(s3_url)
    bucket_name = uri.host.split('.')[0]
    object_key = uri.path[1..-1] # Remove leading slash

    client = Aws::S3::Client.new

    client.head_object({
        bucket: bucket_name, 
        key: object_key, 
    })

data = from_uri("https://s3.eu-west-2.amazonaws.com/sample-bucket/temp/sample-picture.jpg")
puts data.to_h


你需要将这个方法转换成一个类,并将客户端实例化提取到类的初始化中,但这回答了你的问题。
另外请注意:HEAD操作从对象中检索元数据,而不返回对象本身。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接