我尝试上传到s3,当我看到来自s3存储桶日志的日志时,这就是它所说的:
mybucket-me [17/Oct/2013:08:18:57 +0000] 120.28.112.39
arn:aws:sts::778671367984:federated-user/dean@player.com BB3AA9C408C0D26F
REST.POST.BUCKET avatars/dean%2540player.com/4.png "POST / HTTP/1.1" 403
AccessDenied 231 - 132 - "http://localhost:8080/ajaxupload/test.html" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17" -
Run Code Online (Sandbox Code Playgroud)
我拒绝了访问权限.从它指向的地方我认为我唯一遗漏的是添加存储桶策略.所以这里.
使用我的电子邮件,我可以登录我的应用程序并上传头像.我想要放置我的头像的桶名称是mybucket-me,并且它有一个名为avatars的子桶.
-mybucket-me
-avatars
-dean@player.com //dynamic based on who are logged in
-myavatar.png //image uploaded
Run Code Online (Sandbox Code Playgroud)
如何添加存储桶策略,以便我可以授予联盟,例如我在s3中上传或者我将在我的存储桶策略中添加的正确语句,以便它可以授予我上传到我们存储桶的权限?
所以我的问题是在安装时有一些文件没有出现在gcsfuse中.我在在线控制台中看到它们,如果我和gsutils一起.另外,如果我手动在存储桶中创建文件夹,那么我可以看到其中的文件,但我需要先创建它.有什么建议?
gs://mybucket/
dir1/
ok.txt
dir2
lafu.txt
如果我用gcsfuse挂载mybucket并执行'ls'它只返回dir1/ok.txt.然后我将在安装点根部的dir1内创建文件夹dir2,然后突然出现'lafu.txt'.
所以我知道这是一个常见的问题,但似乎没有任何好的答案.
我有一个带有gobs的桶(我不知道有多少)其中的文件数量.它们都在2k以内.
1)如何确定我有多少这些文件而不列出它们?我已经使用了s3cmd.rb,aws/s3和jets3t的东西,我能找到的最好的是一个计算前1000条记录的命令(真正对它们执行GETS).
我一直在使用jets3t的applet,因为它非常适合使用,但即使我无法列出我的所有对象,因为我的堆空间用完了.(可能是因为它正在对所有这些进行GETS并将它们留在记忆中)
2)我怎样才能删除一个桶?我见过的最好的事情是一个并行的删除循环,这有问题,因为有时它会尝试删除相同的文件.这就是我遇到的所有'deleteall'命令.
那些曾经吹嘘自己拥有数百万张图片/ txts的人呢?如果要删除它会发生什么?
3)最后,是否有替代答案?所有这些文件都是txt/xml文件所以我甚至不确定S3是如此关注 - 也许我应该把它移到一个文档数据库中?
它归结为亚马逊S3 API直接缺少2个非常重要的操作 - COUNT和DEL_BUCKET.(实际上有一个删除存储桶命令,但只有当存储桶为空时它才有效)如果有人提出了一个方法,这个方法并不吸引我做这两个操作,我很乐意放弃许多赏金.
UPDATE
只是回答几个问题.我问这个的原因是我在过去一年左右的时间里已经存储了数十万,更像是数百万的2k txt和xml文档.几个月前的最后一次,我希望删除它确实需要DAYS这样做的存储桶,因为存储桶必须是空的才能删除它.这是一个如此痛苦的屁股,我担心在没有API支持的情况下再次这样做.
UPDATE
这晃动了房子!
http://github.com/SFEley/s3nuke/
我在几分钟内就完成了一对价值1-2k档的好几场演出.
我有每日销售数据,我想在一个简单的线图上绘图.
我希望它们能够在月度展示中展示(例如,如果我在1月1日卖出5欧元,在1月24日卖出10欧元,我希望1月份只能看到一个数据点,其中15欧元).
请注意,我不想使用任何支持公式/ VBA脚本,我想仅使用图表格式来执行此操作.
我尝试将图表的X轴类型设置为"日期轴",我选择"月"作为基本单位.这几乎可以工作,但线图最终变得有些怪异.将图表类型更改为直方图也没有多大帮助.个人销售并没有像我那样"堆积",相反,它们却隐藏在另一个之后.堆叠直方图也不起作用.
关于我如何使用图表格式强制excel来篡改我的数据的任何线索?这不是那么难......
我的IAM帐户中有一个名为"testuser"的用户具有管理员权限,如下所示:
{
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
然后我在我的S3存储桶上有一个拒绝此用户访问权限的策略,如下所示:
{
"Statement": [
{
"Effect": "Deny",
"Principal": {
"AWS": "my-account-id:user/testuser"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::my-bucket-name/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
那么,S3存储桶策略中的显式拒绝是否应该覆盖IAM策略允许的权限?但是当我以testuser身份登录时,我仍然可以访问该存储桶中的所有内容 - 我甚至可以访问更改或删除该存储桶的存储桶策略(以及其他所有存储桶).为什么我没有明确拒绝做任何事情?
我在一个AWS账户中有一个S3存储桶(比如说arn:aws:s3:::my-test-bucket
),需要由另一个AWS账户中定义的IAM组访问(比方说arn:aws:iam::1111222333444:group/mygroup
).以下访问策略拒绝保存,并告知该主体arn:aws:s3:::my-test-bucket
是无效的.
{
"Statement": [
{
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:List*",
"s3:Get*"
],
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::1111222333444:group/mygroup"
},
"Resource": [
"arn:aws:s3:::my-test-bucket",
"arn:aws:s3:::my-test-bucket/*"
],
"Sid": "allow-put-for-dedicated-group"
}
],
}
Run Code Online (Sandbox Code Playgroud)
我已经通过用另一个帐户的一个用户替换该组来进行测试,这样可行:
{
"Statement": [
{
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:List*",
"s3:Get*"
],
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::1111222333444:user/me"
},
"Resource": [
"arn:aws:s3:::my-test-bucket",
"arn:aws:s3:::my-test-bucket/*"
],
"Sid": "allow-put-for-dedicated-user"
}
],
}
Run Code Online (Sandbox Code Playgroud)
该小组存在,我不明白为什么它说这是一个无效的校长.实际上它不接受我的其他帐户的任何组.
有没有人对这种行为有解释(可能还有解决方案)?
提前谢谢,干杯
这是我在 BigQuery 中对公共数据集的查询:
SELECT RANGE_BUCKET(reputation, [400000, 500000, 600000, 700000, 800000, 900000, 1000000, 1100000, 1200000]) AS reputation_group, COUNT(*) AS count
FROM `bigquery-public-data.stackoverflow.users`
Where reputation > 200000
GROUP BY 1
ORDER By 1
Run Code Online (Sandbox Code Playgroud)
结果如下:
我如何显示存储桶的范围,而不是将信誉组显示为整数:
0: [0-400000]
1: [400001-500000]
2: [500001-600000]
....
Run Code Online (Sandbox Code Playgroud)
非常感谢。
更新: 非常感谢米哈伊尔的回答,下面有一个小改动:
SELECT bucket,
FORMAT('%i - %i', IFNULL(ranges[SAFE_OFFSET(bucket - 1)] + 1, 0), ranges[SAFE_OFFSET(bucket)]) AS reputation_group,
COUNT(*) AS COUNT
FROM `bigquery-public-data.stackoverflow.users`,
UNNEST([STRUCT([200000, 400000, 500000, 600000, 700000, 800000, 900000, 1000000, 1100000, 1200000] AS ranges)]),
UNNEST([RANGE_BUCKET(reputation, ranges)]) bucket
WHERE reputation > …
Run Code Online (Sandbox Code Playgroud) 我现在正在研究沙发基地,我对'桶'和'vbucket'这个术语的官方描述感到很困惑,有人能解释什么是桶或vbucket吗?有什么不同?最好做一些类比并给出一些例子.
我想在Hive中创建一个表
CREATE TABLE BUCKET_TABLE AS
SELECT a.* FROM TABLE1 a LEFT JOIN TABLE2 b ON (a.key=b.key) WHERE b.key IS NUll
CLUSTERED BY (key) INTO 1000 BUCKETS;
Run Code Online (Sandbox Code Playgroud)
这种语法失败了 - 但我不确定是否有可能做这个组合语句.有任何想法吗?