ruby - 使用 AWS SDK (v2) 从 URL 获取对象键

标签 ruby amazon-s3 aws-sdk

借助 AWS SDK gem,我可以轻松获得给定一些参数的对象 URL。

例子:

credentials = Aws::Credentials.new(ENV['S3_KEY'], ENV['S3_SECRET'])
s3 = Aws::S3::Resource.new(
    credentials: credentials,
    region: ENV['S3_REGION_KEY']
)
object = s3.bucket('my-bucket').object('path/to/file.ext')
url = object.public_url

给定一个公共(public) URL,我可以反转它以获得 Aws::S3::Object 吗?有没有办法使用这个 SDK 来做到这一点?还是我应该手动拆分 URL? (我宁愿避免这种情况。)

最佳答案

我在 ruby​​ 中没有遇到过,但是这个类确实存在于 AWS 的 Java SDK 中。因此,如果您要创建一个 Ruby 实现,可能值得使用它作为指导

https://github.com/aws/aws-sdk-java/blob/806e98ecd35ba00d9dc0da35ab962c7caa76293c/aws-java-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3URI.java

关于ruby - 使用 AWS SDK (v2) 从 URL 获取对象键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27981122/

相关文章:

node.js - 使用 AWS Lambda 和 API Gateway 提供静态 JavaScript?

ruby-on-rails - 将 Sidekiq 升级到 v6 后,它不会在生产环境中自动启动

ruby - 为什么 Pathname 的 chdir 方法被废弃了?

django - collecstatic 不会推送到文件 S3

amazon-web-services - Lambda 函数通过 SNS 接收空 S3 事件对象

java - ObjectMapper 通过 API 网关破坏 AWS Lambda

go - 什么是 locationName 标签以及如何使用它们?

ruby - 如何在 Vim 中自动缩进 Ruby 源代码

ruby - 在 Fedora linux 上使用 rvm 安装 Ruby 2.0.0 的问题

amazon-web-services - 存储桶策略拒绝 S3 :DeleteBucket and S3:DeleteObject still deletes objects