Musisz skonfigurować regionalny punkt końcowy dla wiadra (gdzie został utworzony). Można to zrobić za pomocą:
AWS.config(:s3_endpoint => '...')
s3 = AWS::S3.new
lub
s3 = AWS::S3.new(:s3_endpoint => '...')
można tego uniknąć w przyszłości za pomocą nazwy comptible kubełkowe DNS (także uniknąć kropek w nazwach kubełkowych). Jeśli nazwa zasobnika jest prawidłową subdomeną, możesz adresować swoje wiadro bez konfigurowania punktu końcowego określonego w regionie. Rozważmy następujący:
http:://bucket-name.s3.amazonaws.com/path/to/object.txt
Jeżeli wiadro jest nazwany „wiadro-name” i klucz obiekt jest „ścieżka/do/object.txt”. To wiadro może istnieć w dowolnym regionie, ale możesz uzyskać do niego dostęp za pomocą "domyślnego" regionu. Gdy nazwa wiadro nie jest dns-kompatybilne, wówczas url wygląda następująco:
http://s3.amazon.com/bucket/name/path/to/object.txt
W powyższym przykładzie, wiadro to „wiadro/name”, który nie jest kompatybilny dns. Staje się częścią ścieżki, a teraz s3.amazon.com musi zostać zastąpiony przez regionalny punkt końcowy (jeśli wiadro nie zostało utworzone w klasycznym regionie).
Jak już wspomniano, ścieżki powinny być częścią klucza obiektu, a nie nazwy segmentu. Pozwala to grupować obiekty według wspólnego przedrostka. "/" Jest używane jako folder wirtualny (tylko konwencja).
# 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
Możliwa repost http://stackoverflow.com/questions/6581502/problem-in-podawanie-bucket-of-my-aws-s3-konto – sgud
@sgud to nie w porządku, podany link dotyczy AWS-S3 gem, który ma inną składnię - zamień stałą klasy – Anatoly
"mój_folder" jest częścią nazwy obiektu, a nie Bucket – Anatoly