AWS S3: Nhóm bạn đang cố truy cập phải được xử lý bằng điểm cuối được chỉ định


184

Tôi đang cố gắng xóa các tệp hình ảnh đã tải lên bằng Gem Gem AWS-SDK-Core.

Tôi có đoạn mã sau:

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

Tuy nhiên, tôi nhận được lỗi sau:

Nhóm bạn đang cố truy cập phải được xử lý bằng cách sử dụng điểm cuối đã chỉ định. Vui lòng gửi tất cả các yêu cầu trong tương lai đến điểm cuối này.

Tôi biết khu vực này là chính xác bởi vì nếu tôi thay đổi nó thành us-east-1, lỗi sau sẽ xuất hiện:

Khóa được chỉ định không tồn tại.

Tôi làm gì sai ở đây?


6
Điều này xảy ra với tôi khi tôi vô tình chỉ định vùng sai cho nhóm được chỉ định.
Người đàn ông Muffin

Điều này có thể là do tên khu vực AWS không chính xác đang được sử dụng.
Dattatray

Câu trả lời:


310

Có vẻ như thùng này được tạo ra ở một khu vực khác, IE không phải chúng tôi-west-2. Đó là lần duy nhất tôi thấy "Cái xô bạn đang cố truy cập phải được xử lý bằng cách sử dụng điểm cuối được chỉ định. Vui lòng gửi tất cả các yêu cầu trong tương lai đến điểm cuối này."

Tiêu chuẩn Hoa Kỳ là us-east-1


30
Không bao giờ có thể nghĩ về điều đó, nhưng nó làm việc cho tôi! Trong AWS SDK, khu vực "Tiêu chuẩn Hoa Kỳ" dường như là AWSRegionUSEast1.
Nerrolken

Đã tìm kiếm một câu trả lời làm thế nào để thiết lập khu vực. Cảm ơn!
Sylar

6
Nếu bạn đang sử dụng ứng dụng khách Ruby, hãy đặt thành ENV["AWS_REGION"]giá trị chính xác (ví dụ "us-east-1") cho nhóm trước khi khởi tạo ứng dụng khách
Abe Voelker

Điều gì nếu bạn cần sử dụng nhiều hơn một nhóm (ví dụ: dev / staging / sản xuất, v.v.)?
yekta

1
Tôi đã có cùng một vấn đề trong Java. Giải pháp của bạn đã giúp. Họ sử dụng những cái tên lạ trong S3. Điểm cuối cho vùng, khóa cho tên đối tượng trong kho lưu trữ ...
Gangnus

21

Kiểm tra vị trí xô của bạn trong bảng điều khiển, sau đó sử dụng vị trí này làm tham chiếu đến điểm cuối nào sẽ sử dụng: http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region


2
Bạn có thể giải thích như thế nào? Thay thế region: 'us-west-1',bằng cái gì?
Aamir Afridi

@AamirAfridi nó phụ thuộc vào SDK bạn đang sử dụng. Tôi đang sử dụng SDK iOS và trong nhà cung cấp thông tin xác thực, có một tham số nơi bạn có thể đặt khu vực. Tôi đã đặt nó vào khu vực tôi dự định sử dụng.
Jay Q.

Tôi chỉ có một ví dụ tương tự, nơi tôi đã tối ưu hóa vùng của một nhóm, nhưng tôi đã cập nhật tên miền. Cách khắc phục là thay thế tên miền trước bằng tên miền mới, như đã thấy trong tham chiếu điểm cuối trong bảng điều khiển S3 cho nhóm đó. Ví dụ: Tôi thay thế https://s3.amazonaws.com/mybucket/myasset.jpgvới https://mybucket.s3-ap-southeast-2.amazonaws.com/myasset.jpgđể sửa lỗi đó.
Fabien Haddadi

19

Tôi đã gặp phải một lỗi tương tự vì nhóm nằm trong vùng us-west-2và mẫu URL có tên xô trong đường dẫn. Một lần, tôi đã thay đổi mẫu URL để có tên xô là tên miền phụ URL để lấy các tệp và nó hoạt động.

Ví dụ: URL trước đó là

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

Sau đó, tôi đã thay thế nó như là

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

Đặt tên đủ điều kiện làm việc cho tôi Eg. s3-ap-southeast-1.amazonaws.com/ng-spark/Java8.json cho thùng trong khu vực sẵn có của Singapore
Nilesh Gule

1

Đối với nhiều gói API S3 (gần đây tôi gặp sự cố này, gói npm s3 ) bạn có thể gặp phải các vấn đề trong đó khu vực được coi là Tiêu chuẩn Hoa Kỳ và việc tra cứu theo tên sẽ yêu cầu bạn xác định rõ ràng khu vực nếu bạn chọn lưu trữ nhóm ngoài khu vực đó


1

Trong quá trình tạo S3Client, bạn có thể chỉ định ánh xạ điểm cuối tới một vùng cụ thể. Nếu mặc định s3.amazonaws.comthì xô sẽ được tạo trong us-east-1đó là Bắc Virginia.

Thêm chi tiết về các điểm cuối và vùng S3 trong tài liệu AWS: http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region .

Vì vậy, luôn đảm bảo về điểm cuối / vùng trong khi tạo S3Client và truy cập các nhóm S3 sử dụng cùng một máy khách trong cùng một vùng.

Nếu nhóm được tạo từ Bảng điều khiển AWS S3, sau đó kiểm tra khu vực từ bảng điều khiển cho nhóm đó, sau đó tạo Máy khách S3 trong khu vực đó bằng cách sử dụng các chi tiết điểm cuối được đề cập trong liên kết ở trên.


1

Không có câu trả lời nào ở trên khắc phục vấn đề của tôi.

Các câu trả lời ở trên có thể nhiều khả năng là nguyên nhân của vấn đề của bạn nhưng vấn đề của tôi là tôi đã sử dụng sai tên nhóm. Đó là một tên xô hợp lệ, nó không phải là xô của tôi.

Cái xô tôi đang chỉ vào là ở một khu vực khác có chức năng lambda của tôi, vì vậy hãy kiểm tra tên nhóm của bạn!


0

Đối với những người vẫn đang phải đối mặt với vấn đề này, hãy thử thêm s3_host như sau vào cấu hình băm

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

Điều này đã khắc phục vấn đề cho tôi.


0

Tôi đã gặp lỗi này khi tôi cố truy cập vào một nhóm không tồn tại.

Tôi đã chuyển nhầm một biến đường dẫn với biến tên xô và vì vậy tên xô có giá trị đường dẫn tệp. Vì vậy, có thể kiểm tra kỹ, nếu tên nhóm bạn đặt theo yêu cầu của bạn là chính xác.


0

Tôi đã có lỗi tương tự. Nó xảy ra khi máy khách s3 được tạo với điểm cuối khác với điểm cuối được thiết lập trong khi tạo nhóm.

  • MÃ LRI - Xô được thiết lập với Vùng EAST.

s3Client = AmazonS3Client mới (AWS_ACCESS_KEY, AWS_SECRET_KEY, RegionEndpoint.USWest2)

  • SỬA CHỮA

s3Client = AmazonS3Client mới (AWS_ACCESS_KEY, AWS_SECRET_KEY, RegionEndpoint. USEast1 )


0

Tôi đã phải đối mặt với cùng một vấn đề. Sau rất nhiều cuộc đấu tranh, tôi thấy rằng vấn đề thực sự là với các phụ thuộc com.amazonaws. Sau khi thêm các phụ thuộc, lỗi này đã biến mất.


0

Tôi sống ở Vương quốc Anh đã tiếp tục cố gắng cho 'chúng tôi-tây-2'mgion. Vì vậy, được chuyển hướng đến 'eu-west-2'. Vùng chính xác cho S3 là 'eu-west-2'


0

Điều này xảy ra với tôi khi tôi có một ràng buộc ip nguồn đối với chính sách đang được người dùng sử dụng (khóa truy cập / khóa bí mật) để tạo nhóm s3. IP của tôi là chính xác - nhưng vì một số lý do, nó sẽ không hoạt động và đưa ra lỗi này.


0

Sau một thời gian dài tìm kiếm, tôi tìm thấy một giải pháp làm việc. Vấn đề là do sai region-code.

bên dưới là danh sách mã vùng, đặt mã phù hợp và vấn đề của bạn sẽ được giải quyết.

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ạn có thể tìm thấy mã vùng của mình khi nhấp vào tên xô góc bên phải.

nhập mô tả hình ảnh ở đây

Để biết chi tiết chế độ Bấm


0

Tôi gặp phải vấn đề này khi sử dụng hồ sơ AWS khác. Tôi đã thấy lỗi khi tôi đang sử dụng tài khoản có quyền quản trị viên, vì vậy khả năng xảy ra sự cố quyền dường như là không thể.

Đây thực sự là một thú cưng của tôi rằng AWS rất dễ đưa ra các thông báo lỗi có ít tương quan với các hành động cần thiết, từ góc độ người dùng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.