Ruby AWS SDK 循环通过 Bucket 对象来创建 url

纳杜格

我是 AWS 的新手,我正在尝试遍历我的存储桶对象以生成 url 来读取对象。我在 AWS 文档中找到了以下参考:

bucket.objects.myobject.url_for(:read) 

我有以下方法,其中包含一个循环,该循环至少可以打印每个对象的键,但我正在努力使 url_for 工作。有任何想法吗?

  def aws_s3_url
    s3_client = Aws::S3::Resource.new(region: ENV['AWS_REGION'])
    bucket = s3_client.bucket(ENV['S3_BUCKET'])

    bucket.objects.each do |name|
      puts name.key
    end
  end

感谢所有帮助。

编码

我不知道您拥有的具体用例,但您不需要 URL 来读取存储桶中的对象,因为 AWS 开发工具包将存储桶中的文件映射到Object 的实例

要读取文件的内容,请尝试以下操作:

@s3_client = Aws::S3::Resource.new(region: ENV['AWS_REGION'])

def file_content(key)
  bucket = @s3_client.bucket(ENV['S3_BUCKET'])

  obj = @s3_client.get_object(bucket: bucket, key: key)
  obj.body.read
end

def get_all_files
  bucket = @s3_client.bucket(ENV['S3_BUCKET'])

  bucket.objects.each do |o|
    puts file_content(o.key)
  end
end

要返回对象的公共 URL,您可以尝试:

Aws::S3::Object.public_url

def get_url(key)
  bucket = @s3_client.bucket(ENV['S3_BUCKET'])

  obj = @s3_client.get_object(bucket: bucket, key: key)
  obj.public_url
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过aws-sdk存储URL的回形针的方式和位置?

来自分类Dev

列出AWS Bucket中的对象

来自分类Dev

ruby aws-sdk v2公共URL访问被拒绝的问题

来自分类Dev

如何使用Ruby SDK设置Amazon bucket策略?

来自分类Dev

通过AWS Ruby SDK将Base64图像数据上传到S3

来自分类Dev

通过AWS Ruby SDK将Base64图像数据上传到S3

来自分类Dev

通过AWS PHP SDK创建时将VPC设为默认

来自分类Dev

使用AWS-SDK在Rails中下载用于Ruby的S3文件(对象)

来自分类Dev

ruby aws sdk s3删除文件夹中的对象

来自分类Dev

AWS Ruby-sdk:如何使用自动生成的密码创建IAM用户

来自分类Dev

无法使用ruby aws-sdk v2在S3中创建存储桶

来自分类Dev

AWS Ruby SDK 定价 gem Aws::Errors::NoSuchEndpointError

来自分类Dev

如何使用Ruby SDK在AWS S3对象上设置Access-Control-Allow-Origin标头?

来自分类Dev

Ruby AWS SNS SDK:意外选项message_attributes

来自分类Dev

Ruby on Rails-AWS-SDK配置文件

来自分类Dev

AWS ruby sdk v2-dynamodb查询

来自分类Dev

适用于异步非阻塞调用的AWS ruby sdk

来自分类Dev

如何使用ruby Aws :: Lambda :: Client SDK响应响应

来自分类Dev

如何使用AWS Cognito Ruby SDK注册新用户?

来自分类Dev

AWS Ruby SDK Cloudformation将不会验证模板

来自分类Dev

AWS S3 + Ruby SDK:如何列出存储桶

来自分类Dev

如何使用Ruby SDK从AWS获取公共IP地址

来自分类Dev

通过.net SDK连接到AWS RDS

来自分类Dev

AWS S3无法通过PHP SDK删除存储桶中的对象

来自分类Dev

如何获取存储在AWS Bucket中的对象的存储类

来自分类Dev

通过PHP SDK为AWS S3创建CORS规则

来自分类Dev

AWS Bucket还是CloudFront?

来自分类Dev

通过Ruby了解AWS DynamoDB中的属性

来自分类Dev

为什么在创建本地队列时Node.js AWS-SDK返回错误的SQS队列URL

Related 相关文章

  1. 1

    通过aws-sdk存储URL的回形针的方式和位置?

  2. 2

    列出AWS Bucket中的对象

  3. 3

    ruby aws-sdk v2公共URL访问被拒绝的问题

  4. 4

    如何使用Ruby SDK设置Amazon bucket策略?

  5. 5

    通过AWS Ruby SDK将Base64图像数据上传到S3

  6. 6

    通过AWS Ruby SDK将Base64图像数据上传到S3

  7. 7

    通过AWS PHP SDK创建时将VPC设为默认

  8. 8

    使用AWS-SDK在Rails中下载用于Ruby的S3文件(对象)

  9. 9

    ruby aws sdk s3删除文件夹中的对象

  10. 10

    AWS Ruby-sdk:如何使用自动生成的密码创建IAM用户

  11. 11

    无法使用ruby aws-sdk v2在S3中创建存储桶

  12. 12

    AWS Ruby SDK 定价 gem Aws::Errors::NoSuchEndpointError

  13. 13

    如何使用Ruby SDK在AWS S3对象上设置Access-Control-Allow-Origin标头?

  14. 14

    Ruby AWS SNS SDK:意外选项message_attributes

  15. 15

    Ruby on Rails-AWS-SDK配置文件

  16. 16

    AWS ruby sdk v2-dynamodb查询

  17. 17

    适用于异步非阻塞调用的AWS ruby sdk

  18. 18

    如何使用ruby Aws :: Lambda :: Client SDK响应响应

  19. 19

    如何使用AWS Cognito Ruby SDK注册新用户?

  20. 20

    AWS Ruby SDK Cloudformation将不会验证模板

  21. 21

    AWS S3 + Ruby SDK:如何列出存储桶

  22. 22

    如何使用Ruby SDK从AWS获取公共IP地址

  23. 23

    通过.net SDK连接到AWS RDS

  24. 24

    AWS S3无法通过PHP SDK删除存储桶中的对象

  25. 25

    如何获取存储在AWS Bucket中的对象的存储类

  26. 26

    通过PHP SDK为AWS S3创建CORS规则

  27. 27

    AWS Bucket还是CloudFront?

  28. 28

    通过Ruby了解AWS DynamoDB中的属性

  29. 29

    为什么在创建本地队列时Node.js AWS-SDK返回错误的SQS队列URL

热门标签

归档