我对Amazon SimpleDB有一些基本的了解,但根据Amazon DynamoDB描述,它似乎几乎相同:NoSQL Key-value存储服务.
有人可以简单地解释它们之间的主要区别,并告诉在哪些情况下选择一个而不是另一个.
我没有任何真实的答案或信息(或者它出现了),我看到了一些其他问题.
我在这里有一张图片:http:
//furniture.retailcatalog.us/products/2061/6262u9665.jpg
哪个重定向到:http:
//furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg
我需要它(https):https:
//furniture.retailcatalog.us/products/2061/6262u9665.jpg
所以我在retailcatalog.us上安装了一个通配符ssl(我们有其他子域名),但它没有用.我去检查
https://furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg
它无法正常工作,这意味着在Amazon S3网站上,https无效.
我该如何工作?
我正在努力在Amazon EC2实例上设置Panda.我昨晚设置了我的帐户和工具,使用SSH与我自己的个人实例进行交互没有任何问题,但是现在我没有被允许进入Panda的EC2实例. 熊猫入门
我收到以下错误:
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
Permissions 0644 for '~/.ec2/id_rsa-gsg-keypair' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
Run Code Online (Sandbox Code Playgroud)
为了昨晚进入我的个人实例,我已经将我的密钥对chm编译为600,并且在长度上进行了实验,将权限设置为0甚至生成新的密钥字符串,但似乎没有任何工作.
任何帮助都将是一个很大的帮助!
嗯,好像除非在目录上将权限设置为777,ec2-run-instances脚本无法找到我的密钥文件.我是SSH的新手,所以我可能会忽略一些东西.
我正在尝试使用AWS-SDK-Core Ruby Gem删除上传的图像文件.
我有以下代码:
require 'aws-sdk-core'
def pull_picture(picture)
Aws.config = {
:access_key_id => ENV["AWS_ACCESS_KEY_ID"],
:secret_access_key => ENV["AWS_SECRET_ACCESS_KEY"],
:region => 'us-west-2'
}
s3 = Aws::S3::Client.new
test = s3.get_object(
:bucket => ENV["AWS_S3_BUCKET"],
:key => picture.image_url.split('/')[-2],
)
end
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
您尝试访问的存储区必须使用指定的端点进行寻址.请将以后的所有请求发送到此端点.
我知道该区域是正确的,因为如果我将其更改为us-east-1,则会出现以下错误:
指定的密钥不存在.
我在这做错了什么?
我只是选择python作为我的首选脚本语言,我试图找出如何使用boto3进行正确的错误处理.
我正在尝试创建一个IAM用户:
def create_user(username, iam_conn):
try:
user = iam_conn.create_user(UserName=username)
return user
except Exception as e:
return e
Run Code Online (Sandbox Code Playgroud)
当对create_user的调用成功时,我得到一个整洁的对象,其中包含API调用的http状态代码和新创建的用户的数据.
例:
{'ResponseMetadata':
{'HTTPStatusCode': 200,
'RequestId': 'omitted'
},
u'User': {u'Arn': 'arn:aws:iam::omitted:user/omitted',
u'CreateDate': datetime.datetime(2015, 10, 11, 17, 13, 5, 882000, tzinfo=tzutc()),
u'Path': '/',
u'UserId': 'omitted',
u'UserName': 'omitted'
}
}
Run Code Online (Sandbox Code Playgroud)
这非常有效.但是当这个失败时(比如用户已经存在),我只得到一个类型为botocore.exceptions.ClientError的对象,只有文本告诉我出了什么问题.
示例:ClientError('调用CreateUser操作时发生错误(EntityAlreadyExists):名称已省略的用户已存在.',)
这个(AFAIK)非常难以处理错误,因为我不能只打开生成的http状态代码(根据IAM的AWS API文档,用户已经存在409).这让我觉得我必须以错误的方式做事.最佳方式是boto3永远不会抛出异常,但juts总是返回一个反映API调用方式的对象.
任何人都可以在这个问题上启发我或指出我正确的方向吗?
非常感谢!
是否有任何功能可以在Amazon S3中重命名文件和文件夹?任何相关的建议也欢迎.
有没有人设法添加Access-Control-Allow-Origin到响应标头?我需要的是这样的:
<img src="http://360assets.s3.amazonaws.com/tours/8b16734d-336c-48c7-95c4-3a93fa023a57/1_AU_COM_180212_Areitbahn_Hahnkoplift_Bergstation.tiles/l2_f_0101.jpg" />
Run Code Online (Sandbox Code Playgroud)
此get请求应包含在响应中,标题, Access-Control-Allow-Origin: *
我对存储桶的CORS设置如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)
正如您所料,没有Origin响应头.
我间歇地得到这个错误.
我有一个使用java aws sdk的程序,并将数以千计的小文件加载到s3.我间歇地看到这个错误.
在互联网上快速搜索后找不到任何有用的答案.
请注意,调用程序是单线程的.底层的aws java sdk似乎确实使用了工作线程.
Status Code: 409, AWS Service: Amazon S3, AWS Request ID: 75E16E8DE2193CA6, AWS Error Code: OperationAborted, AWS Error Message: A conflicting conditional operation is currently in progress against this resource. Please try again., S3 Extended Request ID: 0uquw2YEoFamLldm+c/p412Lzd8jHJGFBDz3h7wN+/4I0f6hnGLkPMe+5LZazKnZ
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:552)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:289)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:170)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2648)
at com.amazonaws.services.s3.AmazonS3Client.createBucket(AmazonS3Client.java:578)
at com.amazonaws.services.s3.AmazonS3Client.createBucket(AmazonS3Client.java:503)
Run Code Online (Sandbox Code Playgroud) 我正在试图找出我可以用于未来项目的东西,我们计划在第一年每月存储大约50万条记录,并且可能在接下来的几年中存储更多这是一个垂直应用程序,所以没有必要使用这个数据库,这就是我决定选择noSQL数据存储的原因.
我想到的第一个选择是mongo db,因为它是一个非常成熟的产品,得到了社区的大力支持,但另一方面我们得到了一个全新的产品,提供最佳性能的托管服务,我将开发这个应用但没有维护计划(至少现在),所以我认为这将是一个巨大的优势,因为亚马逊提供了一种弹性的扩展方式.
我主要担心的是查询结构,我还没有看过dynamoDB查询功能,但由于是ak/v数据存储,我觉得这可能比mongo db更受限制.
如果有人有将项目从mongoDB迁移到DynamoDB的经验,那么任何建议都将完全受到赞赏.
我在几个Chrome浏览器上收到以下错误,但不是全部.目前还不确定问题是什么.
来自" https://ABCDEFG.cloudfront.net "的字体已被跨源资源共享策略阻止加载:请求的资源上没有"Access-Control-Allow-Origin"标头.因此,不允许来源" https://sub.domain.com "访问.
我在S3上有以下CORS配置
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedHeader>*</AllowedHeader>
<AllowedMethod>GET</AllowedMethod>
</CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)
请求
Remote Address:1.2.3.4:443
Request URL:https://abcdefg.cloudfront.net/folder/path/icons-f10eba064933db447695cf85b06f7df3.woff
Request Method:GET
Status Code:200 OK
Request Headers
Accept:*/*
Accept-Encoding:gzip,deflate
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Host:abcdefg.cloudfront.net
Origin:https://sub.domain.com
Pragma:no-cache
Referer:https://abcdefg.cloudfront.net/folder/path/icons-e283e9c896b17f5fb5717f7c9f6b05eb.css
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36
Run Code Online (Sandbox Code Playgroud)
来自Cloudfront/S3的所有其他请求都能正常工作,包括JS文件.