AWS S3: Erişmeye çalıştığınız grup belirtilen bitiş noktası kullanılarak ele alınmalıdır


185

Yüklenen görüntü dosyalarını AWS-SDK-Core Ruby Gem ile silmeye çalışıyorum.

Takip koduna sahibim:

require 'aws-sdk-core'

def pull_picture(picture)
    Aws.config = {
        :access_key_id => ENV["AWS_ACCESS_KEY_ID"],
        :secret_access_key => ENV["AWS_SECRET_ACCESS_KEY"],
        :region => 'us-west-2'
    }

    s3 = Aws::S3::Client.new

    test = s3.get_object(
        :bucket => ENV["AWS_S3_BUCKET"],
        :key => picture.image_url.split('/')[-2],   
    )
end

Ancak, aşağıdaki hatayı alıyorum:

Erişmeye çalıştığınız grup belirtilen uç nokta kullanılarak ele alınmalıdır. Lütfen gelecekteki tüm istekleri bu bitiş noktasına gönderin.

Bölgenin doğru olduğunu biliyorum çünkü bunu değiştirirsem us-east-1aşağıdaki hata ortaya çıkıyor:

Belirtilen anahtar mevcut değil.

Burada neyi yanlış yapıyorum?


6
Belirtilen grup için yanlışlıkla yanlış bölgeyi belirlediğimde bu başıma geldi.
Muffin Man

Bunun nedeni yanlış AWS bölge adının kullanılması olabilir.
Dattatray

Yanıtlar:


311

Görünüşe göre bu kova farklı bir bölgede oluşturuldu, IE biz-batı-2 değil. "Erişmeye çalıştığınız grup, belirtilen bitiş noktası kullanılarak ele alınmalıdır. Lütfen gelecekteki tüm istekleri bu bitiş noktasına gönderin."

ABD Standardı: us-east-1


30
Bunu asla düşünemezdim, ama benim için çalıştı! AWS SDK'sında "ABD Standardı" bölgesi AWSRegionUSEast1 gibi görünüyor.
Nerrolken

Bölgenin nasıl ayarlanacağına dair bir cevap arıyordu. Teşekkürler!
Sylar

6
Ruby istemcisini kullanıyorsanız, istemciyi başlatmadan önce grup için ENV["AWS_REGION"]doğru değere (ör. "us-east-1")
Ayarlayın

Birden fazla kova kullanmanız gerekiyorsa (ör. Dev / evreleme / üretim vb.)?
yekta

1
Java'da da aynı sorunu yaşadım. Çözümünüz yardımcı oldu. S3'te garip isimler kullanıyorlar. Son noktaya , bölge için anahtar ... depoda nesne adı için
Gangnus

21

Konsoldaki grup konumunuzu kontrol edin, ardından bunu hangi uç noktanın kullanılacağı konusunda referans olarak kullanın: http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region


2
Nasıl olduğunu açıklayabilir misin? region: 'us-west-1',Ne ile değiştirilsin ?
Aamir Afridi

@AamirAfridi, kullandığınız SDK'ya bağlıdır. İOS SDK kullanıyorum ve kimlik bilgisi sağlayıcısında bölgeyi ayarlayabileceğiniz bir parametre var. Bunu kullanmak istediğim bölgeye ayarladım.
Jay

Bir grubun bölgesini optimize ettiğim benzer bir örneğim vardı, ancak alan adını güncellemek için taktım. Düzeltme, o bölümün S3 konsolundaki uç nokta başvurusunda görüldüğü gibi, önceki etki alanı adını yenisiyle değiştirmekti. Örnek: Bu hatayı düzeltmek için https://s3.amazonaws.com/mybucket/myasset.jpgile değiştirdim https://mybucket.s3-ap-southeast-2.amazonaws.com/myasset.jpg.
Fabien Haddadi

19

Kova bölgede olduğundan us-west-2ve URL kalıbı yolunda kova adı içerdiğinden benzer bir hatayla karşılaştım . Bir kez, URL kalıbı dosyaları yakalamak için URL alt etki alanı olarak kova adı olacak şekilde değiştirdim ve işe yaradı.

Örneğin, önceki URL (önceki değeri)

https://s3.amazonaws.com/bucketname/filePath/filename

Sonra ben onun yerine

https://bucketname.s3.amazonaws.com/filePath/filename

Tam adı koymak benim için çalıştı Eg. Singapur uygunluk bölgesinde bulunan kova için s3-ap-southeast-1.amazonaws.com/ng-spark/Java8.json
Nilesh Gule

1

Birçok S3 API paketi için (yakın zamanda bu sorunu yaşadım npm s3 paketi ), bölgenin ABD Standardı olduğu varsayıldığı sorunlarla karşılaşabilirsiniz ve ada göre arama yapmak, bir grup barındırmayı seçerseniz bölgeyi açıkça tanımlamanızı gerektirir o bölgenin dışında.


1

S3Client oluştururken belirli bir bölgeyle uç nokta eşleştirmesini belirleyebilirsiniz. Varsayılan olarak , Kuzey Virginia olan s3.amazonaws.comkova oluşturulacaktır us-east-1.

AWS belgelerinde S3 uç noktaları ve bölgeler hakkında daha fazla bilgi: http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region .

Bu nedenle, S3Client'i oluştururken daima bitiş noktası / bölge hakkında emin olun ve aynı bölgedeki aynı istemciyi kullanarak S3 kaynaklarına erişin.

Grup AWS S3 Konsolu'ndan oluşturulmuşsa, konsoldan bölgeyi o grup için kontrol edin, ardından yukarıdaki bağlantıda belirtilen uç nokta ayrıntılarını kullanarak o bölgede bir S3 İstemcisi oluşturun.


1

Yukarıdaki cevapların hiçbiri sorunumu çözmedi.

Yukarıdaki cevaplar muhtemelen sorunun nedenidir, ancak benim sorunum yanlış kova adı kullanıyordum. Geçerli bir grup adıydı, sadece grupum değildi.

İşaret ettiğim kova, lambda fonksiyonumun farklı bir bölgede olduğu için kova adınızı kontrol edin!


1

Farklı bir AWS profili kullanırken bu sorunla karşılaştım. Yönetici izinlerine sahip bir hesap kullanırken hatayı gördüm, bu nedenle izin sorunları olasılığı düşük görünüyordu.

AWS'nin kullanıcı bakış açısıyla, gerekli eylemlerle çok az korelasyonu olan hata mesajlarını vermeye çok eğilimli olması gerçekten evcil hayvanım.


0

Hala bu sorunla karşı karşıya kalan ppl için, yapılandırma karmasına aşağıdaki gibi s3_host eklemeyi deneyin

   :storage => :s3,
   :s3_credentials => {:access_key_id => access key,
   :secret_access_key => secret access key},
   :bucket => bucket name here,
   :s3_host_name => s3-us-west-1.amazonaws.com or whatever comes as per your region}.

Bu benim için sorunu düzeltti.


0

Varolmayan bir kovaya erişmeye çalıştığımda bu hatayı aldım.

Yanlışlıkla kova adı değişkeni ile bir yol değişkeni değiştirdim ve böylece kova adı dosya yolu değeri vardı. Bu nedenle, isteğinizde ayarladığınız grup adının doğru olup olmadığını iki kez kontrol edin.


0

Aynı hatayla karşılaştım. S3 istemcisi, grup oluşturulurken ayarlanandan farklı bir son nokta ile oluşturulduğunda meydana geldi.

  • HATA KODU - Kova EAST Bölgesi ile kuruldu.

s3Client = Yeni AmazonS3Client (AWS_ACCESS_KEY, AWS_SECRET_KEY, RegionEndpoint.USWest2)

  • FIX

s3Client = Yeni AmazonS3Client (AWS_ACCESS_KEY, AWS_SECRET_KEY, RegionEndpoint. USEast1 )


0

Aynı sorunla karşı karşıya kaldım.Çok mücadeleden sonra asıl sorunun com.amazonaws bağımlılıklarıyla ilgili olduğunu gördüm.Dağımlılıklar ekledikten sonra bu hata kayboldu.


0

İngiltere'de yaşıyorum 'us-west-2' denemeye devam ediyordu. Bu yüzden 'ab-batı-2'ye yönlendirildi. S3 için doğru bölge 'eu-west-2'


0

Bu benim için kullanıcı tarafından kullanılan erişim ip kısıtlaması vardı (erişim anahtarı / gizli anahtar) s3 kepçe oluşturmak için. IP adresim doğruydu - ancak bir nedenden dolayı çalışmaz ve bu hatayı verdi.


0

Uzun bir araştırmadan sonra çalışan bir çözüm buldum. Sorun yanlış yüzündenregion-code .

aşağıda bölge kodlarının listesi, uygun olanı ayarlayın ve sorununuz çözülecektir.

Code                         Name
US East (Ohio)               us-east-2

US East (N. Virginia)       us-east-1

US West (N. California)     us-west-1

US West (Oregon)            us-west-2

Asia Pacific (Hong Kong)    ap-east-1

Asia Pacific (Mumbai)       ap-south-1

Asia Pacific (Osaka-Local)  ap-northeast-3

Asia Pacific (Seoul)        ap-northeast-2

Asia Pacific (Singapore)    ap-southeast-1

Asia Pacific (Sydney)       ap-southeast-2

Asia Pacific (Tokyo)        ap-northeast-1

Canada (Central)            ca-central-1

Europe (Frankfurt)          eu-central-1

Europe (Ireland)            eu-west-1

Europe (London)             eu-west-2

Europe (Paris)             eu-west-3

Europe (Stockholm)         eu-north-1

Middle East (Bahrain)      me-south-1

South America (São Paulo)   sa-east-1

Bölge kodunuzu grup adının sağ köşesine tıklayarak bulabilirsiniz.

resim açıklamasını buraya girin

Mod detayları için Tıklayın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.