我已经为此苦苦挣扎了很长时间-defaws_file_exists?filenamebegin@s3_interface.get('bucket',filename)returntruecatchAws::AwsError,Aws::AwsError2,NoSuchKey,RuntimeError,AmazonError,AWSErrorreturnfalseendend只是,它没有捕捉到!(@^%@&$*%#错误,报告为:Aws::AwsError:NoSuchKey:Thespecifiedkeydoesnotexist.我做错了什么/我需要捕获的错误类型是什么?
我有以下场景。在我的例子中考虑awss3文件夹结构如下-videos-my_videos-college我已经在college上传了视频文件myfirst_day.mp4,因为这个相关的形成键是"videos/my_videos/college/myfirst_day.mp4"现在我必须列出videos/my_videos/college目录中的所有文件。我该怎么做。为此,我正在使用aws-sdkgem 最佳答案 您可以简单地遍历bucketobjects并使用with_prefix方法s3.buckets[YOURBUCKETNA
在他们的SDK版本1中,Amazon提供了一些非常有用的方法,可用于使用Tree、ChildCollection、LeafNode、BranchNode等探索存储桶的内容。不幸的是,我很难复制它们的功能SDK的版本2,它似乎不包含此类方法。理想情况下,我想做类似于以下示例的操作,该示例取自thev1SDK.tree=bucket.as_treedirectories=tree.children.select(&:branch?).collect(&:prefix)#=>['photos','videos']files=tree.children.select(&:leaf?).coll
有没有办法使用aws-sdk将大文件流式上传到S3?我似乎无法弄清楚,但我假设有办法。谢谢 最佳答案 更新我的内存失败了,我没有正确阅读我最初回答中提到的引用(见下文),正如(S3Object,ObjectVersion)write(data,options={})的API文档所揭示的那样:WritesdatatotheobjectinS3.Thismethodwillattempttointelligentlychoosebetweenuploadinginonerequestandusing#multipart_upload.[
我对使用Amazon的ruby-sdk(geminstallaws-sdk)还很陌生,一直在尝试简单地为快照资源创建标签。这是我正在做的:ec2.tags.create(:resource_id=>"snap-7d3aa701",:key=>"MyTestTag",:value=>"Mytestvalue")ArgumentError:wrongnumberofarguments(1for2)请注意,ec2=AWS::EC2.new(在我设置凭据之后)。知道我做错了什么吗?我无法在网上找到使用rubyaws-sdk进行标记的单个示例。 最佳答案
我正在为AWS开发Rails应用程序,并想为区域名称创建下拉菜单,例如“us-east-1”等。如果有人已经创建了gem来获取它们,我想使用它。有谁知道这样的gem或有用的API? 最佳答案 适用于Ruby的AWS开发工具包(aws-sdkgem)支持枚举区域名称:require'aws-sdk'ec2=AWS::EC2.new(:access_key_id=>'...',:secret_access_key=>'...')ec2.regions.map(&:name)=>["eu-west-1","sa-east-1","us-e
我正在使用AmazonAWSSES在用户注册时发送常见的确认电子邮件。我已验证我的电子邮件和域,但Rails不发送消息。我已经安装了aws-sesgem并且它可以工作,因为我已经从Rails控制台做了一些尝试。但是当它必须自动发送时,我得到:I,[2013-11-13T12:36:21.953813#3262]INFO--:Completed500InternalServerErrorin1623msF,[2013-11-13T12:36:21.958860#3262]FATAL--:AWS::SES::ResponseError(MessageRejected-Emailaddres
我正在尝试使用v2的rubyAWSSDK创建一个新的AWSCloudfrontDistribution,但无法弄清楚是什么导致了这个错误。Aws::CloudFront::Errors::MalformedInput:意外的列表元素终止client=Aws::CloudFront::Client.newresp=client.create_distribution({distribution_config:{caller_reference:Time.now.to_i.to_s,:aliases=>{:quantity=>1,:items=>[Name.generate_name]
我尝试将我的项目迁移到aws-sdk2。为此需要使用AWSSDKforRuby-Version2。我找到了所有方法,但我无法更改对文件的访问(公开)。在以后的版本中我使用这个:bucket.objects[file_path].acl=:public_read但我找不到更改新API版本的方法。这是指向oldapidocumentation的链接这是指向newapidocumentations的链接 最佳答案 我假设您希望在将对象上传到S3后更改对象ACL。如果可以,请考虑在将对象发送到S3时而不是之后设置ACL。有两种方法可以做到这
好的,所以我尝试了两种方法都失败了第一种方法使用aws-s3gemrequire'aws/s3'S3ID="MYACCESS"S3KEY="MYKEY"includeAWS::S3AWS::S3::Base.establish_connection!(:access_key_id=>S3ID,:secret_access_key=>S3KEY)bucket=AWS::S3::Bucket.find("test_bucket")=>#"http://s3.amazonaws.com/doc/2006-03-01/","name"=>"test_bucket","prefix"=>nil,