복붙노트

[RUBY-ON-RAILS] AWS S3 : 당신은 액세스를 시도하는 버킷은 지정된 엔드 포인트를 사용하여 해결해야

RUBY-ON-RAILS

AWS S3 : 당신은 액세스를 시도하는 버킷은 지정된 엔드 포인트를 사용하여 해결해야

나는 AWS-SDK 코어 루비 보석으로 업로드 된 이미지 파일을 삭제하려합니다.

나는 다음과 같은 코드가 있습니다 :

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

그러나, 나는 다음과 같은 오류가 점점 오전 :

나는 우리 동쪽-1, 다음과 같은 오류 쇼까지로 변경하는 경우 때문에이 지역이 올바른지 알고 :

어떻게 내가 여기 잘못 한거야?

해결법

  1. ==============================

    1.그것은이 버킷이 다른 지역에서 만든 것으로 보인다, IE하지 말라고 서쪽-2. 그게 내가 본 유일한 시간 "당신이 액세스를 시도하는 버킷 지정된 엔드 포인트를 사용하여 해결해야합니다.이 엔드 포인트에 미래의 모든 요청을 보내 주시기 바랍니다."

    그것은이 버킷이 다른 지역에서 만든 것으로 보인다, IE하지 말라고 서쪽-2. 그게 내가 본 유일한 시간 "당신이 액세스를 시도하는 버킷 지정된 엔드 포인트를 사용하여 해결해야합니다.이 엔드 포인트에 미래의 모든 요청을 보내 주시기 바랍니다."

  2. ==============================

    2.콘솔에서 버킷의 위치를 ​​확인하고있는 엔드 포인트 사용을 참조로 사용 : http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region

    콘솔에서 버킷의 위치를 ​​확인하고있는 엔드 포인트 사용을 참조로 사용 : http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region

  3. ==============================

    3.버킷이 지역에서 우리 서쪽-2이고 URL 패턴이 경로에 bucketname 있었기 때문에 나는 유사한 오류에 직면했다. 일단, 나는 파일을 잡기 위해 URL 하위 도메인으로 bucketname을 위해 URL 패턴을 변경하고 일했다.

    버킷이 지역에서 우리 서쪽-2이고 URL 패턴이 경로에 bucketname 있었기 때문에 나는 유사한 오류에 직면했다. 일단, 나는 파일을 잡기 위해 URL 하위 도메인으로 bucketname을 위해 URL 패턴을 변경하고 일했다.

    예를 들어 이전 URL 들어 있었다

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

    그럼으로 교체

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

    4.많은 S3의 API 패키지의 경우는 양동이를 호스트하기 위해 선택하는 경우 명시 적으로 영역을 정의 할 필요 당신이 지역이 미국 표준으로 가정 문제로 실행하고, 이름으로 조회 할 수 있습니다 (저는 최근에이 문제 고궁 박물원의 S3 패키지를했다) 해당 영역의 외부.

    많은 S3의 API 패키지의 경우는 양동이를 호스트하기 위해 선택하는 경우 명시 적으로 영역을 정의 할 필요 당신이 지역이 미국 표준으로 가정 문제로 실행하고, 이름으로 조회 할 수 있습니다 (저는 최근에이 문제 고궁 박물원의 S3 패키지를했다) 해당 영역의 외부.

  5. ==============================

    5.S3Client 만드는 동안 당신은 특정 지역에 엔드 포인트 매핑을 지정할 수 있습니다. 버킷 다음 s3.amazonaws.com의 기본은 우리 동쪽-1에서 생성 될 경우 북 버지니아이다.

    S3Client 만드는 동안 당신은 특정 지역에 엔드 포인트 매핑을 지정할 수 있습니다. 버킷 다음 s3.amazonaws.com의 기본은 우리 동쪽-1에서 생성 될 경우 북 버지니아이다.

    AWS의 문서에서 S3 엔드 포인트 및 지역에 대한 자세한 내용은 다음과 같습니다 http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region.

    같은 지역에서 같은 클라이언트를 사용하여 S3Client 및 액세스 S3 자산 및 자원을 안전하게 만드는 동안 그래서, 항상 엔드 포인트 / 지역에 대해 확인하십시오.

    버킷은 AWS S3 콘솔에서 생성되는 경우 그 버킷 후 위의 링크에서 언급 된 엔드 포인트 정보를 사용하여 해당 지역에서 S3 클라이언트 만들기 위해, 다음 콘솔에서이 지역을 확인합니다.

  6. ==============================

    6.위의 답변 중 어느 것도 내 문제를 해결하지 않습니다.

    위의 답변 중 어느 것도 내 문제를 해결하지 않습니다.

    위의 답변은 가능성이 아마도 문제의 원인하지만 내 문제는 내가 잘못된 버킷 이름을 사용했다이었다. 그것은 단지 나의 버킷 아니었다 유효한 버킷 이름이었다.

    내가 가리키는 된 버킷 내 람다 함수는 그래서 당신의 버킷 이름을 확인하는 것이 다른 지역에 있었다!

  7. ==============================

    7.는 config 해시에 다음과 같이 여전히이 문제를 직면하고있는 사람들을 위해, S3 호스트를 추가하는 시도

    는 config 해시에 다음과 같이 여전히이 문제를 직면하고있는 사람들을 위해, S3 호스트를 추가하는 시도

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

    이것은 나를 위해 문제를 해결했습니다.

  8. ==============================

    8.내가 존재하지 않는 양동이에 액세스하려고 할 때이 오류를 얻었다.

    내가 존재하지 않는 양동이에 액세스하려고 할 때이 오류를 얻었다.

    나는 실수 버킷 이름 변수로 경로 변수를 전환 버킷 이름 있도록 파일의 경로 값을했다. 그래서 어쩌면 더블 체크, 당신은 귀하의 요청에 설정하는 것이 버킷 이름이 올바른지합니다.

  9. ==============================

    9.나는 같은 오류가 발생했다. S3 클라이언트 버킷 생성시 설정되었던 것과 다른 엔드 포인트로 생성 된 때 일어났다.

    나는 같은 오류가 발생했다. S3 클라이언트 버킷 생성시 설정되었던 것과 다른 엔드 포인트로 생성 된 때 일어났다.

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

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

  10. ==============================

    10.나는 되세요 같은 issue.After에게 내가 진짜 문제는이 오류가 사라있어 종속성을 추가 dependencies.After com.amazonaws 함께 발견 투쟁을 많이 직면했다.

    나는 되세요 같은 issue.After에게 내가 진짜 문제는이 오류가 사라있어 종속성을 추가 dependencies.After com.amazonaws 함께 발견 투쟁을 많이 직면했다.

  11. ==============================

    11.나는 우리-서쪽 2'region '에 대한 노력을 계속하고 영국에 살고 있습니다. 그래서 '유럽 연합 (EU)에서 서쪽으로-2'로 리디렉션. S3에 대한 올바른 지역은 '유럽 연합 (EU) - 서쪽-2'입니다

    나는 우리-서쪽 2'region '에 대한 노력을 계속하고 영국에 살고 있습니다. 그래서 '유럽 연합 (EU)에서 서쪽으로-2'로 리디렉션. S3에 대한 올바른 지역은 '유럽 연합 (EU) - 서쪽-2'입니다

  12. ==============================

    12.나는 S3 버킷을 생성하는 사용자 (액세스 키 / 비밀 키)가 사용하는 정책에 대한 소스 IP 제한을했을 때이 나를 위해가 발생했습니다. 내 IP는 정확했다 -하지만 어떤 이유로 작동하지 것이며,이 오류를했다.

    나는 S3 버킷을 생성하는 사용자 (액세스 키 / 비밀 키)가 사용하는 정책에 대한 소스 IP 제한을했을 때이 나를 위해가 발생했습니다. 내 IP는 정확했다 -하지만 어떤 이유로 작동하지 것이며,이 오류를했다.

  13. ==============================

    13.긴 검색 후, 나는 작업 솔루션을 발견했다. 이 문제 때문에 잘못된 지역 코드이었다.

    긴 검색 후, 나는 작업 솔루션을 발견했다. 이 문제 때문에 잘못된 지역 코드이었다.

    아래 지역 - 코드 목록은 적절한 하나 설정하고 문제가 해결 될 것입니다.

    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
    

    당신은 버킷 이름 오른쪽의 클릭에 지역 코드를 찾을 수 있습니다.

    모드 자세한 내용은 클릭하십시오

  14. from https://stackoverflow.com/questions/25027462/aws-s3-the-bucket-you-are-attempting-to-access-must-be-addressed-using-the-spec by cc-by-sa and MIT license