Tag: amazon s3

rails中的AWS S3 – 如何设置s3_signature_version参数

我正在尝试设置Amazon Simple Storage Service以用于rails。 我收到此错误消息: The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256. 问题是我选择了法兰克福S3区域,并且只支持V4方案。 这是与本文中相同的错误消息,它引导您到此处的解决方案,并指示如何“在构造客户端时将:s3_signature_version参数设置为:v4”。 命令是: s3 = AWS::S3::Client.new(:s3_signature_version => :v4) 我的问题是,我该怎么做? 我在哪里放这个代码? 编辑: 我尝试在carrier_wave.rb中输入:s3_signature_version => :v4 ,如下所示,但在上传到heroku期间,它说[fog][WARNING] Unrecognized arguments: s3_signature_version ,它没有任何区别,我仍然得到错误。 配置/初始化/ carrier_wave.rb: if Rails.env.production? CarrierWave.configure do |config| config.fog_credentials = { # Configuration for Amazon S3 :provider => ‘AWS’, :aws_access_key_id […]

适用于S3文件副本的AWS SDK v2 AllAccessDisabled错误

我正在切换到我编写的rails应用程序中的新aws-sdk,并且在我的生活中找不到在v2 sdk中使用相应的方法。 我也遇到访问被拒绝的问题,我无法解决。 我使用v1 sdk的方式是用户使用“uploads”命名空间密钥直接上传到s3,并且在创建他们正在处理的对象之后,回调将文件移动到longterm密钥并删除旧密钥。 这是一个例子: def move_file old_key = s3_key new_key = “#{self.class.table_name}/#{id}/#{Digest::SHA1.hexdigest([Time.now, rand].join)}/#{filename}” AWS.config(access_key_id: ENV[‘AWS_ACCESS_KEY_ID’], secret_access_key: ENV[‘AWS_SECRET_ACCESS_KEY’], region: ‘us-east-1’) s3 = AWS::S3.new bucket_name = ENV[‘AWS_S3_BUCKET’] bucket = s3.buckets[bucket_name] object = bucket.objects[old_key] begin object.move_to new_key, :acl => :public_read rescue AWS::S3::Errors::NoSuchKey errors.add(:base, “Oops! Something went wrong uploading your file. Please try again, and if the […]

在aws-s3 gem和right_aws gem之间的Rails Paperclip冲突。 怎么解决?

对于新的应用程序,我想使用paperclip将文件存储到S3。 我已经为另一个应用程序安装了aws-s3 gem。 这似乎会导致一些问题,因为Paperclip应该使用right_aws但是试图使用aws-s3 gem。 但我不想从我的系统中删除aws-s3 gem。 有没有办法解决这个冲突? 也许通过强制回形针使用right_aws? 或者通过更改配置? 我的设置 # enviroment.rb config.gem ‘right_aws’ # my model with the attachment has_attached_file :thumbnail, :styles => { :thumb => “160×120>” }, :storage => :s3, :s3_credentials => “#{RAILS_ROOT}/config/amazons3.yml”, :path => “:provider/:attachment/:id_:style.:extension” # config/amazons3.yml development: bucket: bucketname access_key_id: secret secret_access_key: secret test: bucket: bucketname access_key_id: secret secret_access_key: secret […]

适用于使用carrierwave上传图像文件的用户的s3权限

在Michael Hartl的The Rails Tutorial的第11章末尾,我成功地设法通过创建存储桶,使用IAM设置用户并授予用户AmazonS3FullAccess策略来启用用户上传到Amazons S3服务。 让我的网站上的未知用户可以完全访问我的网站上的图像上传桶并且我不确定我是否应该这样感觉,这感觉很脏并且非常不安全。 我创建了一个自定义策略 http://awspolicygen.s3.amazonaws.com/policygen.html 以下是: { “版本”:“2012-10-17”, “声明”:[ { “Sid”:“Stmt1445501067518”, “行动”:[ “S3:GetObject的”, “S3:PutObject” ] “效果”:“允许”, “资源”:“arn:aws:s3 ::: bucketname” } ] } 我对我的解决方案没有信心,也无法找到任何答案谷歌搜索最佳方式。 我正在使用carrierwave(有意使用carrierwave_direct用于我自己的项目),雾和mini_magickgem。

带有S3 on Rails 3的回形针/未初始化的常量AWS :: S3 :: Connection

我正在尝试使用paperclip将文件上传到s3,并在创建新对象并引用变量时出现此错误: 安装了aws-s3 gem s3.yml文件具有正确的凭据 即: a = Attachment.new a.file NameError: uninitialized constant AWS::S3::Connection from /Library/Ruby/Gems/1.8/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb:206:in `const_missing’ from /Library/Ruby/Gems/1.8/gems/aws-s3-0.6.2/lib/aws/s3.rb:32 from /Library/Ruby/Gems/1.8/gems/aws-s3-0.6.2/lib/aws/s3.rb:31:in `class_eval’ from /Library/Ruby/Gems/1.8/gems/aws-s3-0.6.2/lib/aws/s3.rb:31 from /Library/Ruby/Gems/1.8/gems/paperclip-2.3.3/lib/paperclip/storage.rb:131:in `extended’ from /Library/Ruby/Gems/1.8/gems/paperclip-2.3.3/lib/paperclip/attachment.rb:269:in `extend’ from /Library/Ruby/Gems/1.8/gems/paperclip-2.3.3/lib/paperclip/attachment.rb:269:in `initialize_storage’ from /Library/Ruby/Gems/1.8/gems/paperclip-2.3.3/lib/paperclip/attachment.rb:51:in `initialize’ from /Library/Ruby/Gems/1.8/gems/paperclip-2.3.3/lib/paperclip.rb:372:in `new’ from /Library/Ruby/Gems/1.8/gems/paperclip-2.3.3/lib/paperclip.rb:372:in `attachment_for’ from /Library/Ruby/Gems/1.8/gems/paperclip-2.3.3/lib/paperclip.rb:270:in `file’ from (irb):6 这是Attachment模型的样子: class Attachment :s3, :s3_credentials => “#{RAILS_ROOT}/config/s3.yml”, :path => […]

Rails3 – 如何在应用程序中获取aws-s3的yml配置数据?

具体来说,我有一个文件config / amazon_s3.yml,aws-s3 gem使用它来设置一些s3配置设置,比如密钥等。我还将一些这样的数据写入ENV中的var中,在初始化程序的不同文件中所以我可以通过调用paperclip使用的“has_attached_file”方法来引用它们。 在初始化器中获取文件以从s3配置yml中读取它们,或者为gem使用的类的一些配置设置更聪明,例如AWS::S3::Base.connection.secret_access_key (这不是’工作)。 有任何想法吗?

NameError:未初始化的常量CarrierWave :: Storage :: Heroku日志中的雾

您好我刚刚将AWS S3 Bucket添加到我的应用程序中。 这是应用程序错误https://dry-atoll-6663.herokuapp.com/ 在heroku日志中,当i $ heroku重新启动时,会出现此错误 2015-04-28T09:13:15.009823+00:00 app[web.1]: [3] ! Unable to load application: NameError: uninitialized constant CarrierWave::Storage::Fog 我的Carrierwave.rb CarrierWave.configure do |config| config.fog_credentials = { # Configuration for Amazon S3 :provider => ‘AWS’, :aws_access_key_id => ENV[‘S3_ACCESS_KEY’], :aws_secret_access_key => ENV[‘S3_SECRET_KEY’] } config.fog_directory = ENV[‘S3_BUCKET’] end 有任何想法吗? 我和我的朋友正在大开眼界……

Paperclip – 从Amazon S3删除文件?

我需要能够从用户存储的S3中删除文件,例如个人资料照片。 只是调用@user.logo.destroy似乎没有办法 – 我得到[paperclip] Saving attachments. 在日志中,文件保留在S3存储桶中。 如何删除文件本身?

从S3下载Carrierwave上传

我想使用carrierwave下载上传到S3的图像。 图像位于卡型号上,作为上传器安装。 我看到了这个答案 ,但是无法让这个解决方案起作用。 我的代码是: #download image from S3 uploader = card.image #image is the mounted uploader uploader.retrieve_from_store!(File.basename(card.image.url)) uploader.cache_stored_file! 最后一行抛出:“…导致exception(未定义的方法`body’为nil:NilClass)……” 我的carrierwave配置如下: #config/initializers/carrierwave.rb CarrierWave.configure do |config| config.storage = :fog config.cache_dir = “#{Rails.root}/tmp/upload” … end

有没有办法在推送到heroku时将资产管道资产资产转到s3?

有没有一种简单的方法可以通过资产管道和部署到heroku / s3来实现这一目标? 我希望我的本地rails应用程序按照正常情况在本地使用image / css / js。 当你预编译时,是否有一种简单的方法让生产应用程序从s3提供它的资产(而dev资源是本地的)。 而且当你预编译/部署到heroku时,新编译的资产会自动发送到s3? 这是开发人员(我:D)不必使用新部署的文件手动更新s3? 谢谢。