0

ペーパークリップでファイルを S3 にアップロードしていますが、同じアプリからダウンロードしたいと考えています。だから私は多くのページが言うことをやっていますが、「aws-sdk」を使用すると、AWS::S3::S3Object メソッド「find」が存在しないと表示され、「aws-s3」gem を使用すると、 「aws-sdk」を使用する必要があると書かれています。コントローラーで私が呼んでいる:

aws_object = AWS::S3::S3Object.find @component.folder.path, 'bucket-name'
send_data(aws_object.value, :type => @component.folder_content_type) 

編集: 私のモデルは次のようになります:

attr_accessible :folder

has_attached_file   :folder, 
                    :path => ":rails_root/data/folders/:id/:basename.:extension",
                    :storage => :s3,
                    :s3_credentials => {
                        :bucket => "my-bucket-name",
                        :access_key_id => "XXXXXXXXX",
                        :secret_access_key => "XXXXXXXXX"
                    }
4

1 に答える 1

0

これは私のために働いた:

http://trevorturk.com/2008/12/11/easy-upload-via-url-with-paperclip/

ダウンロードする例もあります。

シークレットは ".read" でした:

data = open(asset.uploaded_file.url)
send_data data.read, :type => data.content_type, :x_sendfile => true,:filename => asset.file_name 
于 2013-07-04T04:37:52.533 に答える