2016-09-15 3 views
1

Я новичок в AWS, так что я уверен, что я просто где-то отсутствует. В настоящее время у меня есть прямая загрузка на S3, установленная в моем приложении Rails, которое работает. Когда я загружаю изображение в свое приложение, триггеры JS, я преодолел проблемы CORS, и изображение появляется на моей консоли S3. Ура.Amazon S3 Изображения не показываются - Все доступ к этому объекту отключен

Проблема в том, когда я пытаюсь просмотреть изображение. Когда я перехожу к образу url изображения (как возвращено S3 и подтверждено древовидной структурой в консоли), я получаю 403 HTTP-ответ и интересную ошибку XML (которую я посмотрел и нашел только связанный с InvalidPayer, что я могу «т найти ссылку где-нибудь, кроме here):

<Error> 
    <Code>AllAccessDisabled</Code> 
    <Message>All access to this object has been disabled</Message> 
    <RequestId>DF2E5FCE3EF9A8A9</RequestId> 
    <HostId> 
BRqoJ5qxtYfe4ykFCxJftgghNbHvmp/hZQggrLszOwxz2oCje8gCLmZFex0Zebu8k/O+1cSJyic= 
    </HostId> 
</Error> 

Развлечения для всех! Я оглядывался, и я обнаружил, что мне, вероятно, нужно как настроить разрешения для моего пользователя IAM, так и установить разрешения для ведра, чтобы другие люди могли добраться до изображения. Поэтому я перешел на мои разрешения IAM пользователя и добавил AmazonS3FullAccess, что казалось очевидным и самым полным выбором. Кроме того, я пошел к моему ведром, чтобы установить права доступа для всех и указано следующее:

{ 
    "Id": "PolicyIdHere", 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "StmtIdHere", 
      "Action": [ 
       "s3:GetObject" 
      ], 
      "Effect": "Allow", 
      "Resource": "arn:aws:s3:::my-bucket-name/*", 
      "Principal": "*" 
     } 
    ] 
} 

PS, что установка ковш был сгенерирован с помощью АМС их policy generator, так что я подозреваю, что это не так, или иначе я «Отсутствует тонкость.

Я думаю, что если я думаю об этом, мне кажется, что я установил все разрешения, которые мне могут потребоваться, чтобы получить изображения самостоятельно, но, возможно, есть дополнительные настройки, которые необходимо настроить для того, чтобы кто-либо с правильный S3 URL-адрес для просмотра изображения?

Заранее благодарим за любые советы.

ответ

3

Facepalm

Других мой классический должен-быть-наглядными-ответами, которые я только что заметил, посмотрев на это свежее утро. A) Вам нужно сделать то, о чем я упоминал ... Настройки CORS (если вы используете JS для прямой загрузки на S3 и используете ваше приложение для этого), настройки пользователя IAM и разрешения для ведра все должны быть правильно сконфигурировано. Но: B) вы должны правильно построить URL-адрес. S3 возвращал ведро и путь, но не базовый URL. Так что я собирался s3.amazonaws.com/path-to-asset, но НЕ s3.amazonaws.com/bucket-name/path-to-asset, что явно ключ.

Ya 'live и ya' learn.

Смежные вопросы