Tag: amazon s3

Paperclip和Amazon S3问题

我有一个在Heroku上运行的rails应用程序。 我正在使用回形针进行一些简单的图像上传用户头像和其他一些东西,我将S3设置为我的后端,一切似乎都工作正常,除了尝试推送到S3时我收到以下错误: The AWS Access Key Id you provided does not exist in our records. 我以为我错误地粘贴了我的访问密钥和密钥,我再次尝试,仍然没有运气。 想想也许它只是一个有缺陷的钥匙我停用它并生成一个新的。 仍然没有运气。 现在对于这两个键,我在OS X上使用了S3浏览器应用程序,并且能够连接到每个键并查看我当前的存储桶并添加/删除存储桶。 有什么我应该注意的吗? 我有我的应用程序的S3和回形针设置就像这样 development: bucket: (unique name) access_key_id: ENV[‘S3_KEY’] secret_access_key: ENV[‘S3_SECRET’] test: bucket: (unique name) access_key_id: ENV[‘S3_KEY’] secret_access_key: ENV[‘S3_SECRET’] production: bucket: (unique_name) access_key_id: ENV[‘S3_KEY’] secret_access_key: ENV[‘S3_SECRET’] has_attached_file :cover, :styles => { :thumb => “50×50” }, :storage […]

回形针回调或简单的处理器?

我想运行回调after_post_process但它似乎不适用于使用Paperclip 2.3.8的Rails 3.0.1。 它给出了一个错误: undefined method `_post_process_callbacks’ for # 我想在文件上传后调用Panda API。 我会为此创建我自己的处理器,但是当Panda处理处理时,它也可以上传文件,并将自己排队一段不确定的持续时间我认为回调会很好。 但回调似乎在Rails3中不起作用。 after_post_process :panda_create def panda_create video = Panda::Video.create(:source_url => mp3.url.gsub(/[?]\d*/,”), :profiles => “f4475446032025d7216226ad8987f8e9”, :path_format => “blah/1234”) end 我尝试在我的模型中使用并包含回形针,但似乎并不重要。 有任何想法吗?

Firefox不会从CloudFront渲染字体

我有一个Rails应用程序,托管在Heroku上 。 在部署期间,资产通过asset_sync gem与Amazon S3存储桶同步,并且视图通过CloudFront调用这些资产。 但是,使用Firefox查看网站时不会呈现字体(文件在Firebug的“网络”选项卡中加载,但根本不使用)。 Safari很棒。 我在S3上有以下CORS配置: * GET 3000 Content-* Host 我的应用程序还设置了以下标题: Access-Control-Allow-Origin: * Access-Control-Request-Method: * 但CloudFront返回没有它们的字体…为什么没有加载字体? 提前致谢。

“identify”命令无法识别图像文件。 (Heroku的)

我正在努力让Paperclip与Heroku和Amazon S3合作。 在localhost(mac OS和Amazon)上一切正常,但是当我部署到heroku并尝试该function时,我有这个错误: 2 errors prohibited this area from being saved: Asset /tmp/paris20121005-2-2cwxgx.jpg is not recognized by the ‘identify’ command. Asset /tmp/paris20121005-2-2cwxgx.jpg is not recognized by the ‘identify’ command. 它在我的模型中删除:styles => {}选项时有效,但文件未处理(我需要不同的图像大小)。 我的gemfile中也有rmagick gem。 这是我的gemfile(只有回形针部分): gem “paperclip” gem “rmagick”, :require => ‘RMagick’ gem ‘aws-sdk’, ‘~> 1.3.4’ 我没有在我的environment.rb或production.rb中设置Paperclip.options [:command_path]所以这方面没问题。 这是我的模型: class Area { :medium => […]

使用Carrierwave直接上传到S3

我最近将以下内容从使用Paperclip转换为Carrierwave上传到Amazon S3,因此我可以使用carrierwave_direct gem,然后使用Sidekiq或其他后台处理gem。 class Release :destroy has_many :tracks, :through => :releases_tracks, :order => “releases_tracks.position DESC” accepts_nested_attributes_for :tracks, :reject_if => lambda { |a| a[:name].blank? }, :allow_destroy => :true accepts_nested_attributes_for :releases_tracks end class Track :destroy has_many :releases, :through => :releases_tracks end /views/releases/track_upload.html.erb { :multipart => true }) do |f| %> Upload Tracks for “file styled”, :title => […]

使用Carrierwave在Heroku上载大文件

我即将开始一个业余爱好项目,我将向S3上传大量文件。 有些文件大50-100MB。 我想使用Heroku,但如果需要,可以使用EC2。 Heroku + Carrierwave + S3会为此工作吗? 或者文件上传有限制吗? 如果是这样,什么是一个好的选择? 如果有任何很酷的上传库,如uploadify但没有闪存,也很好奇。 谢谢!

用于保护S3文档的Rails实现

我想通过rails app保护我的s3文件,如果我去: www.myapp.com/attachment/5应在显示/下载文档之前对用户进行身份validation。 我已经阅读了关于stackoverflow的类似问题,但我不确定我是否已经看到任何好的结论。 根据我的阅读,您可以采取一些措施来“保护”您的S3文档。 1)模糊URL。 我做到了这一点。 我认为这是一件好事,所以没有人可以猜到这个url。 例如,如果您的S3 URL显而易见,那么很容易“遍历”URL: https : //s3.amazonaws.com/myapp.com/attachments/1/document.doc 。 有一个URL,如: https : //s3.amazonaws.com/myapp.com/7ca/6ab/c9d/db2/727/f14/document.doc似乎好多了。 这很好,但不能解决通过电子邮件或网站传递URL的问题。 2)使用如下所示的过期URL: Rails 3,paperclip + S3 – 如何存储实例并保护访问对我而言,这不是一个很好的解决方案,因为URL被暴露(即使只是很短的一段时间)并且另一个用户可能及时重用URL。 您必须调整允许下载的时间,而不会提供太多的复制时间。 这似乎是错误的解决方案。 3)通过应用程序代理文档下载。 起初我尝试使用send_file: http : //www.therailsway.com/2009/2/22/file-downloads-done-right但问题是这些文件只能是服务器上的静态/本地文件不通过其他网站(S3 / AWS)提供服务。 但是,我可以使用send_data并将文档加载到我的应用程序中,并立即将文档提供给用户。 这个解决方案的问题很明显 – 带宽的两倍和时间的两倍(将文档加载到我的应用程序然后再返回给用户)。 我正在寻找一种能够提供#3完全安全性的解决方案,但不需要额外的带宽和时间来加载。 看起来Basecamp正在“保护”他们应用程序背后的文档(通过身份validation),我认为其他网站正在做类似的事情,但我不认为他们正在使用我的#3解决方案。 建议将不胜感激。 更新 : 我选择了第四个解决方案: 4)使用amazon存储桶策略来控制基于引用者的文件访问: http : //docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?UsingBucketPolicies.html 再次更新: #4井可以通过浏览器开发人员的工具轻松解决。 所以我仍然在寻找一个可靠的解决方案。

将大文件上传到s3时Heroku超时

基于在heroku上部署的RefineryCMS 1.0.8我的应用程序出了问题。 Heroku的请求超时为30秒。 当通过RefineryCMS管理员上传文件> 4MO时,执行请求有时需要30秒以上(主要是因为将文件上传到s3所需的时间)。 在这种情况下,dyno将被“冻结”并且在大约30分钟内没有响应(此时间期间的每个请求都以H12错误请求超时结束)。 这种行为正是在本讨论的最后一条消息中描述christos的原因 从其他讨论和heroku文档 :“直接上传到S3是首选方法,如果你正在处理大于4MB的文件上传。想法是跳过你的dyno跳转,直接从最终用户浏览器建立连接到S3。“ 直接上传到S3应该是解决方案,但我很难用RefineryCMS / Dragonfly / Fog正确实现它。 我不确定是否可以在没有对这些工具进行大的修改的情况下,我想知道是否有替代方案。 谢谢你的帮助

Paperclip / S3的“缺少必需:桶选项”

在我的Rails应用程序中,我让用户在创建“发布”时上传图像,并且应该直接上传到S3。 我在开发和生产中都遇到以下错误。 编辑:我应该注意,尝试从表单提交上的发布编辑页面上传时会发生此错误。 ArgumentError in ReleasesController#update missing required :bucket option Rails.root: /Users/jasondemeuse/pressed 我以前做过这个没有使用过Carrierwave的问题,但是现在因为我正在使用Paperclip而无法弄清楚我做错了什么。 我在SO和其他地方看到的所有修复都是heroku问题,但是我在开发时遇到了同样的问题而且没有一个修复有帮助。 这是相关代码(“…”表示不相关的代码段): development.rb Appname::Application.configure do … config.paperclip_defaults = { :storage => :s3, :s3_protocol => ‘http’, :s3_credentials => { :bucket => ENV[‘AWS_BUCKET’], :access_key_id => ENV[‘AWS_ACCESS_KEY_ID’], :secret_access_key => ENV[‘AWS_SECRET_ACCESS_KEY’] } } end production.rb Appname::Application.configure do … config.paperclip_defaults = { :storage => :s3, :s3_protocol => […]

每次推送到heroku,图像都没有显示,回形针

这是我的情况。 我正在使用paperclip让用户上传图片。 它做得很好,一切都很好。 然后,我把它推到了heroku。 对于妈妈,我可以看到用户上传的所有图片。 但是,每次进行新的提交并再次推送到heroku时,我之前的所有图像都消失了。 好像没有文件了,无法加载它。 所以,在这里我的想法是:每当我推送到heroku服务器时,本地的图像文件是否已上传到heroku服务器? 我为它研究了我的问题,我真的不明白他们对heroku的实际说法,我不知道是不是我的问题。 Heroku有一个只读文件系统。 这意味着Paperclip无法将上传的文件保存到Heroku中的任何位置。 如果您希望能够将文件上载到Heroku上托管的应用程序,则必须将文件作为二进制blob存储在数据库中,或者必须使用单独的服务来存储文件。 如果您正在寻找单独的服务,Paperclip内置支持与Amazon S3集成。 我发现亚马逊S3需要信用卡才能注册,如果我没有信用卡,那我就不能使用他们的服务了? 任何细节建议和解释都表示赞赏。谢谢