AWS S3: Ember yang Anda coba akses harus diatasi menggunakan titik akhir yang ditentukan

185

Saya mencoba menghapus file gambar yang diunggah dengan AWS-SDK-Core Ruby Gem.

Saya memiliki kode berikut:

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

Namun, saya mendapatkan kesalahan berikut:

Ember yang Anda coba akses harus diatasi menggunakan titik akhir yang ditentukan. Silakan kirim semua permintaan di masa mendatang ke titik akhir ini.

Saya tahu wilayah ini benar karena jika saya mengubahnya us-east-1, kesalahan berikut muncul:

Kunci yang ditentukan tidak ada.

Apa yang saya lakukan salah di sini?

pengguna3575214
sumber
6
Ini terjadi pada saya ketika saya secara tidak sengaja menentukan wilayah yang salah untuk bucket yang ditentukan.
The Muffin Man
Ini bisa jadi karena nama wilayah AWS yang salah digunakan.
Dattatray

Jawaban:

311

Tampaknya ember ini dibuat di wilayah yang berbeda, yaitu IE bukan us-west-2. Itulah satu-satunya saat saya melihat "Ember yang Anda coba akses harus diatasi menggunakan titik akhir yang ditentukan. Silakan kirim semua permintaan di masa mendatang ke titik akhir ini."

Standar AS adalah us-east-1

Marcus Walser
sumber
30
Tidak akan pernah memikirkan hal itu, tetapi itu berhasil untuk saya! Di AWS SDK, wilayah "Standar AS" tampaknya AWSRegionUSEast1.
Nerrolken
Sedang mencari jawaban cara mengatur wilayah. Terima kasih!
Sylar
6
Jika Anda menggunakan klien Ruby, setel ENV["AWS_REGION"]ke nilai yang benar (mis. "us-east-1") Untuk bucket sebelum menginisialisasi klien
Abe Voelker
Bagaimana jika Anda perlu menggunakan lebih dari satu ember (mis. Dev / staging / produksi dll)?
yekta
1
Saya memiliki masalah yang sama di Jawa. Solusi Anda membantu. Mereka menggunakan nama aneh di S3. Titik akhir untuk wilayah, kunci untuk nama objek di repositori ...
Gangnus
21

Periksa lokasi bucket Anda di konsol, lalu gunakan ini sebagai referensi titik akhir mana yang akan digunakan: http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region

Jay Q.
sumber
2
Bisakah Anda menjelaskan caranya? Ganti region: 'us-west-1',dengan apa?
Aamir Afridi
@ AmirAfridi tergantung pada SDK yang Anda gunakan. Saya menggunakan iOS SDK, dan di penyedia kredensial, ada parameter di mana Anda dapat mengatur wilayah. Saya telah mengaturnya ke wilayah yang ingin saya gunakan.
Jay Q.
Saya baru saja memiliki contoh serupa, di mana saya mengoptimalkan wilayah ember, tetapi saya berkomitmen untuk memperbarui nama domain. Cara mengatasinya adalah mengganti nama domain sebelumnya dengan yang baru, seperti yang terlihat pada referensi titik akhir di konsol S3 untuk bucket itu. Contoh: Saya diganti https://s3.amazonaws.com/mybucket/myasset.jpgdengan https://mybucket.s3-ap-southeast-2.amazonaws.com/myasset.jpguntuk memperbaiki kesalahan itu.
Fabien Haddadi
19

Saya menghadapi kesalahan yang sama karena ember berada di kawasan us-west-2dan pola URL memiliki nama ember di jalur. Suatu kali, saya mengubah pola URL untuk menjadikan bucketname sebagai subdomain URL untuk mengambil file dan itu berhasil.

Untuk misalnya URL sebelumnya

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

Lalu saya menggantinya sebagai

https://bucketname.s3.amazonaws.com/filePath/filename
prasun
sumber
Menempatkan nama yang sepenuhnya memenuhi syarat bekerja untuk saya. Misalnya. s3-ap-southeast-1.amazonaws.com/ng-spark/Java8.json untuk bucket yang ada di zona ketersediaan Singapura
Nilesh Gule
1

Untuk banyak paket S3 API (Saya baru-baru ini mengalami masalah ini paket npm s3 ) Anda dapat mengalami masalah di mana wilayah diasumsikan sebagai Standar AS, dan pencarian dengan nama akan mengharuskan Anda untuk secara eksplisit menentukan wilayah jika Anda memilih untuk menjadi tuan rumah ember di luar wilayah itu.

Duncan
sumber
1

Selama pembuatan S3Client, Anda dapat menentukan pemetaan titik akhir ke wilayah tertentu. Jika default s3.amazonaws.commaka bucket akan dibuat di us-east-1yang merupakan Virginia Utara.

Lebih detail tentang titik akhir S3 dan wilayah dalam dokumen AWS: http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region .

Jadi, selalu pastikan tentang titik akhir / wilayah saat membuat S3Client dan akses sumber S3 menggunakan klien yang sama di wilayah yang sama.

Jika bucket dibuat dari AWS S3 Console, lalu periksa wilayah dari konsol untuk bucket tersebut lalu buat Klien S3 di wilayah itu menggunakan detail titik akhir yang disebutkan dalam tautan di atas.

Rathan
sumber
1

Tidak ada jawaban di atas yang memperbaiki masalah saya.

Jawaban di atas mungkin lebih cenderung menjadi penyebab masalah Anda, tetapi masalah saya adalah bahwa saya menggunakan nama ember yang salah. Itu nama ember yang valid, itu bukan ember saya.

Ember yang saya tunjukkan berada di wilayah yang berbeda dengan fungsi lambda saya jadi periksa nama ember Anda!

Peter Grainger
sumber
1

Saya mengalami masalah ini ketika menggunakan profil AWS yang berbeda. Saya melihat kesalahan ketika saya menggunakan akun dengan izin admin, jadi kemungkinan masalah izin sepertinya tidak mungkin.

Ini benar-benar kesal bagi saya bahwa AWS sangat rentan untuk mengeluarkan pesan kesalahan yang memiliki sedikit korelasi dengan tindakan yang diperlukan, dari perspektif pengguna.

kokociel
sumber
0

Untuk ppl yang masih menghadapi masalah ini, coba tambahkan s3_host sebagai berikut ke hash konfigurasi

   :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}.

Ini memperbaiki masalah bagi saya.

RamanSM
sumber
0

Saya mendapatkan kesalahan ini ketika saya mencoba mengakses ember yang tidak ada.

Saya keliru mengganti variabel path dengan variabel nama bucket dan jadi nama bucket memiliki nilai path file. Jadi mungkin periksa ulang, apakah nama ember yang Anda tetapkan pada permintaan Anda benar.

Sven Möhring
sumber
0

Saya memiliki kesalahan yang sama. Itu terjadi ketika klien s3 dibuat dengan titik akhir yang berbeda dari yang ditetapkan saat membuat ember.

  • KODE KESALAHAN - Ember diatur dengan Wilayah EAST.

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

  • MEMPERBAIKI

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

Tushar
sumber
0

Saya telah menghadapi masalah yang sama. Setelah banyak perjuangan saya menemukan bahwa masalah sebenarnya adalah dengan com.amazonaws dependensi. Setelah menambahkan dependensi kesalahan ini hilang.

Shridhar Acharya
sumber
0

Saya tinggal di Inggris terus berusaha untuk 'us-west-2'region. Jadi dialihkan ke 'eu-west-2'. Wilayah yang benar untuk S3 adalah 'eu-west-2'

dansek
sumber
0

Ini terjadi pada saya ketika saya memiliki batasan ip sumber pada kebijakan yang digunakan oleh pengguna (kunci akses / kunci rahasia) untuk membuat ember s3. IP saya akurat - tetapi untuk beberapa alasan tidak berfungsi dan memberikan kesalahan ini.

CamHart
sumber
0

Setelah pencarian yang panjang, saya menemukan solusi yang berfungsi. Masalahnya adalah karena kesalahan region-code.

di bawah ini adalah daftar kode wilayah, atur yang sesuai dan masalah Anda akan terpecahkan.

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

Anda dapat menemukan kode wilayah Anda di klik sudut kanan nama ember.

masukkan deskripsi gambar di sini

Untuk detail mode Klik

Vikram Kodag
sumber