Bạn cần phải định cấu hình điểm cuối cụ thể theo khu vực của mình cho nhóm (vị trí được tạo). Bạn có thể làm điều này với:
AWS.config(:s3_endpoint => '...')
s3 = AWS::S3.new
hoặc
s3 = AWS::S3.new(:s3_endpoint => '...')
Bạn có thể tránh điều này trong tương lai bằng cách sử dụng DNS tên xô comptible (cũng tránh dấu chấm trong tên xô). Nếu tên nhóm là tên miền phụ hợp lệ, thì bạn có thể xử lý nhóm của mình mà không cần định cấu hình điểm cuối cụ thể theo vùng. Hãy xem xét những điều sau:
http:://bucket-name.s3.amazonaws.com/path/to/object.txt
Trường hợp thùng được đặt tên "tên nhóm" và khóa đối tượng là "đường dẫn/đến/object.txt". Nhóm này có thể tồn tại ở bất kỳ vùng nào và bạn có thể truy cập vào nhóm này bằng vùng "mặc định". Khi tên nhóm không tương thích với dns, thì url trông giống như:
http://s3.amazon.com/bucket/name/path/to/object.txt
Trong ví dụ ở trên, nhóm là "thùng/tên", không tương thích với dns. Nó trở thành một phần của đường dẫn, và bây giờ s3.amazon.com phải được thay thế bằng điểm cuối cụ thể vùng (nếu thùng không được tạo trong vùng cổ điển).
Là người khác được đề cập, đường dẫn phải là một phần của khóa đối tượng chứ không phải là tên nhóm. Điều này cho phép bạn nhóm các đối tượng bằng một tiền tố chung. '/' Được sử dụng như một thư mục ảo (theo quy ước).
# print the key of every object with the given prefix
s3.buckets['bucket-name'].objects.with_prefix('path/to/').each do |object|
puts object.key
end
Nguồn
2012-10-19 04:15:58
Có thể đăng lại http://stackoverflow.com/questions/6581502/problem-in-accessing-bucket-of-my-aws-s3-account – sgud
@sgud không đúng, liên kết bạn cung cấp là về AWS-S3 đá quý có một cú pháp khác nhau - thay thế hằng số của một lớp – Anatoly
"my_folder" là một phần của tên Object, không phải Bucket – Anatoly