У меня есть приложение rails 3, которое позволяет пользователям обмениваться файлами, загружая их в Amazon s3 с помощью скрепки, и я хочу позволить другим пользователям загружать эти файлы. Однако какая-то постобработка, похоже, происходит с этим файлом где-то между моим приложением и Amazon s3.
Вот мой код:
has_attached_file :attachment,
:storage => :s3, :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:path => ':id/:style', :bucket => "test_development"
Это работает нормально, однако, если я действительно обращаюсь к инструментам разработчика amazon s3, URL для файла выглядит так: http://s3.amazonaws.com/test_development/1/original без исходного имени или типа.
Затем я попытался использовать что-то вроде этого: [p.attachment.url(:original, false), p.attachment_file_name].join("/")
что дает: http://s3.amazonaws.com/test_development/1/original/test.pdf
Однако, если я попал на этот URL, я получаю загадочную ошибку XML:
<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>1/original/About Downloads.pdf</Key>
<RequestId>7E5CC6A01CADF831</RequestId>
<HostId>
4ruFf0JtdalnaIE/SHUAqT8hVYEda9Ul6gxNmYTIAniw7piTN+Q16uKKCzi9yezl
</HostId>
</Error>
Что я здесь не так делаю? Я просто хочу загрузить файл на s3 без какой-либо обработки, а затем загрузить снова позже ... как мне это сделать?
Спасибо!