Ответ 1
Решено! Просто добавьте эти две строки в мою модель User
:
:url =>':s3_domain_url',
:path => '/:class/:attachment/:id_partition/:style/:filename',
Должно быть довольно простое решение этого вопроса, я думаю, но я не могу заставить его работать. У меня есть приложение Rails 4, модель пользователя с настройкой атрибута photograph
с помощью Paperclip, и я связал его с S3.
Здесь модель пользователя:
has_attached_file :photograph,
:styles => { :medium => "300x300>", :thumb => "100x100>" },
:storage => :s3,
:bucket => " my-bucket-name ",
:default_url => '/images/:attachment/missing_:style.png',
:s3_credentials => S3_CREDENTIALS
Изображение добавляется в мой ведро S3 просто отлично, но когда я пытаюсь сделать снимок с <%= image_tag @user.photograph.url %>
, он не появляется. При дальнейшей проверке URL изображения:
http://s3.amazonaws.com/my-bucket-name/users/photographs/000/000/001/original/20121103_132556.jpg?1388619625
Если я следую этому URL-адресу в браузере, я вижу XML файл следующим образом:
<Error>
<Code>PermanentRedirect</Code>
<Message>
The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.
</Message>
<RequestId> ... </RequestId>
<Bucket>my-bucket-name</Bucket>
<HostId>
...
</HostId>
<Endpoint>my-bucket-name.s3.amazonaws.com</Endpoint>
</Error>
Следовательно, когда я следую URL-адресу http://my-bucket-name.s3.amazonaws.com/actives/photographs/000/000/001/original/20121103_132556.jpg?1388619625
в браузере, я вижу, что изображение просто отлично.
Как изменить конечную точку в моей модели пользователя? Каков нормальный способ справиться с этим? Я должен добавить, что мое ведро S3 - регион Северной Калифорнии. Спасибо.
Решено! Просто добавьте эти две строки в мою модель User
:
:url =>':s3_domain_url',
:path => '/:class/:attachment/:id_partition/:style/:filename',
Иногда проблема заключается в том, что ваше ведро не находится на сервере usb (по умолчанию amazon).
Вы можете изменить конечную точку, используя этот
:s3_host_name => 'your_host_name'
Вы можете найти свое имя хоста по следующей ссылке в столбце конечной точки Конечные точки Amazon
Если вы не знаете свою область ведра, вы можете найти ее в свойствах ведра.