2013-05-26 5 views
1

다음 질문을 보려면 On Amazon S3 I'm able to give an individual object download rights but cannot for the entire bucket을 참조하십시오.내 S3 버킷의 이미지를 로컬 개발 응용 프로그램에서 어떻게 참조합니까?

업로드 한 모든 이미지가있는 양동이가 있습니다. https://devcenter.heroku.com/articles/s3의 지시에 따라 URL을 통해 액세스하려고합니다. 물론 라이브 앱에 최신 변경 사항을 업로드하기 전에 액세스 할 수 있는지 확인하고 싶습니다. 내가 말할 수있는 한 yml이 적절하게 설정되었지만 WEBRICK에서 로컬로 실행되는 사이트를 방문하면 이미지가로드되지 않습니다. 내 rubygems 디렉토리의 AWS 파일을 변경하지 않았습니다. 이미지를 표시하는 데 사용하는 참조의 예는 다음과 같습니다.

<%= image_tag("https://s3-us-west-2.amazonaws.com/mybucket/someimage.jpg") %> 

누구 한테 지침을 제공 할 수 있습니까? 포함 된 AWS 파일에 코드를 추가하는 방법에 대한 지침이 있지만 거기에 가서 원숭이와 관련된 정보를 충분히 이해할 수는 없습니다. 감사.

{ 
    "Id": "somepolicy", 
    "Statement": [ 
    { 
     "Sid": "someid", 
     "Action": [ 
     "s3:GetObject" 
     ], 
     "Effect": "Allow", 
     "Resource": "arn:aws:s3:::myapp/mykey", 
     "Principal": { 
     "AWS": [ 
      "*" 
     ] 
     } 
    } 
    ] 
} 

난 아직도 이미지에 액세스 할 수 없습니다입니다 :

나는 나의 버킷 정책에 다음을 추가했다. GetObject이 적절한 조치입니까?

+0

이미지 URL을 따라 가면 어떻게됩니까? 이미지가로드됩니까? –

+0

@LarryMcKenzie, 액세스가 거부되었습니다. 브라우저에 자격 증명을 입력하지 않기 때문에 적절한 테스트인지 잘 모르겠습니다. S3에서 URL을 확인하라는 메시지를 보았습니다. 실제로는 https://s3-us-west-2.amazonaws.com/mybucket/someimage.jpg입니다. –

+0

그건 당신 문제입니다. 특정 도메인의 요청이므로 개발 요청이 필요하지 않습니다. –

답변

0

큰 덕분에이 문제에 저와 함께 일했다, 특히 @LarryMcKenzie. 문제는 업로드시 파일 사용 권한을 설정해야하며 버킷의 모든 개체에 권한을 대량 할당 할 수있는 방법이 없다는 것입니다.

해결 방법 : 모든 사용자가 열기/다운로드 플래그를 true로 설정하여 모든 이미지를 다시 업로드했습니다.

0

이미지 업로드에는 클립 클립을 사용해야합니다. 필요하지는 않지만 사용자가 디스크에 업로드 할 수있게하려면 전문가에게 맡기는 것이 좋습니다. (왜 바퀴를 다시 발명합니까?).

클립, 당신이

User.profile_pic.url 

또는

User.images.first.image.url 

등의 작업을 수행 할 수 있습니다 나는 확실히 그 길을 가야하는 것 같아요.

+0

팁 주셔서 감사합니다. 나는 그것을 미래에 고려할 것입니다. 그러나 heroku는이 방법을 사용하지 말 것을 권장합니다. –

+1

Heroku는 절대 클립 클립 사용을 권장합니다. – OneChillDude

관련 문제