Tag: 亚马逊 s3

Rails和Amazon S3

我正在关注本教程并使用paperclip和S3构建rails文件共享应用程序。 上传到S3的文件工作正常,但是当我点击上传的文件名时,我收到此错误: OpenURI::HTTPError in AssetsController#get 301 Moved Permanently (Invalid Location URI) 它指向我 app/controllers/assets_controller.rb:15:in `get’ 这是我的代码: assets.controller.rb def get asset = current_user.assets.find_by_id(params[:id]) if asset #Parse the URL for special characters first before downloading data = open(URI.parse(URI.encode(asset.uploaded_file.url))) #then again, use the “send_data” method to send the above binary “data” as file. send_data data, :filename => asset.uploaded_file_file_name #redirect […]

S3上的回形针处理器超时

我正在将数字签名插入到处理器内的pdf文件中,但不断收到AWS::S3::ERRORS::Requestimeout错误。 什么是超时? 有没有什么办法可以保持连接打开,直到文件上传? 未在超时期限内读取或写入与服务器的套接字连接。 空闲连接将被关闭。 这是我的代码: 模型: … has_attached_file :receipt_file, :storage => :s3, :s3_credentials => “#{Rails.root}/config/s3.yml”, :path => “/:style/:id/:filename”, :s3_protocol => “https”, :styles => {dummy:””}, processors: [:SignPdf] #process_in_background :receipt_file … 处理器 module Paperclip class SignPdf < Processor attr_accessor :receipt_id,:style S3_CONFIG = YAML.load_file("#{::Rails.root}/config/s3.yml")[Rails.env] ORIGAMIDIR = "/ruby/1.9.1/gems/origami-1.2.4/lib" def initialize(file, options = {}, attachment = nil) @file = […]

使用Paperclip上传到Heroku上的S3(delayed_job问题)

我正在尝试上传到我构建的投资组合应用程序,特别是试图找到将delayed_job挂钩到进程的位置。 这一切都是有效的。 现在它在app/controllers/portfolio_items_controller.rb:18:in ‘create’上返回undefined method ‘call’ for # app/controllers/portfolio_items_controller.rb:18:in ‘create’所以这是我的模型和控制器的那部分……任何人都可以看到任何可能的东西出错了? 我现在使用的钩子是我从这个博客得到的: http : //madeofcode.com/posts/42-paperclip-s3-delayed-job-in-rails /app/controllers/portfolio_items_controller.rb def create @portfolio_item = PortfolioItem.new(params[:portfolio_item]) if @portfolio_item.save flash[:notice] = “Portfolio item created. As soon as files are uploaded Portfolio item will be made live.” redirect_to @portfolio_item else render :action => ‘new’ end end /app/models/asset.rb class Asset { :thumb => “20×20#”, […]

Rails carrierwave S3获取带有Content-Disposition标头的url

我们使用carrierwave + aws S3上传文件,我们需要提供下载function。 对于解决方案1,我们使用: = link_to “Download”, file.doc.url, download: file.original_name 并且它在IE8下不起作用,单击该链接将打开此文件(图像)。 根据This ,我应该添加Content-Disposition标头, 然后我检查了aws S3文档, 发现我需要将response-content-disposition添加到file.doc.url , 我有什么方法可以在carrierwave中做到这一点,或者我可以用其他方式? 谢谢你的帮助。

Rails将Paperclip目录结构转换为Carrierwave

我使用的是Paperclip gem: https : //github.com/thoughtbot/paperclip 我现在正在使用Carrierwave: https : //github.com/carrierwaveuploader/carrierwave 我的制作网站目前正在使用Paperclip。 我将更新生产网站以使用Carrierwave。 Paperclip上传的文件夹结构与Carrierwave不同。 我也使用Amazon S3来存储上传。 我想知道是否有办法将使用Paperclip上传的生产文件转换为Carrierwave。 例如,在制作中使用Paperclip时,我现在有类似以下内容的简历: BUCKET_NAME / MODEL_NAME /恢复/ 000/000 / MODEL_ID /原厂/检验.pdf 使用Carrierwave它应该是: BUCKET_NAME /上传/模型名称/恢复/ MODEL_ID /原厂/检验.pdf 现在看来我必须手动进行这种转换。 我想知道是否有更好的方法。 请指教。

关于将Rails应用程序部署到Amazon Cloud的教程?

我正在寻找一个可靠的开端到终端类型教程,用于将Rails应用程序部署到Amazon Cloud。 希望这样的教程将包括有关如何使用S3以及如何管理所选数据库中收集的所有持久数据的指导。

Carrierwave程序上传

现在在我的rails应用程序中,我正在使用Carrierwave将文件上传到Amazon S3。 我正在使用文件选择器和表单来选择和提交文件,这很有效。 但是,我现在正试图从iPhone应用程序发帖并收到该文件的内容。 我想使用这些数据创建一个文件,然后使用Carrierwave上传它,这样我就能找到正确的路径。 May文件模型包括: path file_name id user_id 其中path是Amazon S3url。 我想做这样的事情来构建文件: data = params[:data] ~file creation magic using data~ ~carrierwave upload magic using file~ @user_id = params[:id] @file_name = params[:name] @path = path_provided_by_carrierwave_magic File.build(@user_id, @file_name, @path) 真的很想有人指出我正确的方向。 谢谢!

Rails Paperclip S3重命名成千上万的文件?

我正在尝试重命名s3中的大量文件 – 更改当前的回形针has_attached_file :path来自stuff/:id_:updated_at_:style.:extension :path stuff/:id_:updated_at_:style.:extension到stuff/:id_:counter_:style.:extension ,其中:counter是与图像在同一模型中的字段。 我对如何重命名所有文件并不是最模糊的 – 最好是在rake任务中。 顺便说一下,每次将新文件保存到记录中时,我都会递增:counter 。 这是Rails 3和最新的Paperclip。 有任何想法吗? 谢谢!

rails回形针默认图像与S3

我正在尝试在我的应用程序中使用default_url,但我使用S3存储图像。 我不确定我需要在那里放置什么URL,或者我是否必须创建一个假图像才能将所有内容放到那里。 由于我的图像总是通过S3呈现,我不知道如果我只是在我的公共文件夹中放入一些默认图像它是否会起作用。 它现在似乎没有工作 – 我也只有一个图像,我知道它必须resize。 我可以手动将resize的图像放在那里,但我仍然不确定默认使用哪个URL。 请帮忙 :)

Carrierwave / Fog / S3“不是公认的存储提供商”

我有一个使用Carrierwave进行文件上传的Rails应用程序。 它一直工作正常,但我想开始使用Amazon S3进行图像存储。 我收到此错误: ArgumentError ( is not a recognized storage provider): app/controllers/salons_controller.rb:52:in `update’ 我已经确定我有Carrierwave和Fog的最新gem。 这是在我的Gemfile中: gem ‘carrierwave’ gem ‘aws-sdk’ gem ‘fog’ fog.rb看起来像: CarrierWave.configure do |config| config.fog_credentials = { :provider => ‘AWS’, :aws_access_key_id => ‘MYACCESSKEY’, :aws_secret_access_key => ‘MYSECRETKACCESSKEY’, :region => ‘us-east-1’ } config.fog_directory = ‘andrunix’ config.fog_public = true config.fog_attributes = {‘Cache-Control’=>’max-age=315576000’} 结束 Uploader类看起来像: class SalonImageUploader […]