ofe*_*oli 5 ruby amazon-s3 ruby-on-rails-3 ruby-on-rails-4
如何使用 Ruby on Rails 检查我的 s3 存储桶中是否存在某个文件夹?
我正在使用 AWS:S3 官方 gem 初始化全局连接后
AWS::S3::Base.establish_connection!(:access_key_id => 'my_key_id', :secret_access_key => ‘my_secret’)
Run Code Online (Sandbox Code Playgroud)
我有一个名为: myfirstbucket
里面的文件夹命名为: my_folder
将 my_folder 中的文件命名为: my_pic.jpg
当我尝试检查是否my_pic.jpg存在时它工作得很好
s3object.exists? “/my_folder/my_pic.jpg” , “myfirstbucket”
=> True
Run Code Online (Sandbox Code Playgroud)
如何仅检查文件夹是否存在?
s3object = AWS::S3::S3Object
s3object.exists? “/my_folder/” , “myfirstbucket”
=> False
Run Code Online (Sandbox Code Playgroud)
使用Bucket#objects:
bucket.objects({prefix: 'my/folder/'}).limit(1).any?
Run Code Online (Sandbox Code Playgroud)
返回
Collection的ObjectSummary资源。在您调用集合上的可枚举方法之前,不会发出 API 请求。Client#list_objects将被多次调用,直到每个ObjectSummary都被产生。— http://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Bucket.html#objects-instance_method
你可以用你的桶做一棵树。
\n\nhttp://docs.aws.amazon.com/AWSRubySDK/latest/AWS/S3/Tree.html
\n\ntree = bucket.as_tree\ntree.children.select(&:branch?).collect(&:prefix).include?(\xe2\x80\x9c/my_folder/\xe2\x80\x9d)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
12839 次 |
| 最近记录: |