小编I Z*_*I Z的帖子

如何以boto编程方式检查Amazon S3权限?

我们在Amazon S3上的桶中有一个浓密的树,有大量文件.我刚刚发现,虽然有些文件有两个权限条目,如果单击AWS管理控制台中的文件,然后属性 - >权限,一行是"所有人"而另一行是某个特定用户,其他文件只有一个该用户的条目.结果,我们在使用boto或curl将这些文件下载到Amazon EC2实例时遇到问题.

我需要做的是查看存储桶中的所有文件并检查它们.我知道如何获取前缀的完整密钥列表.我可以使用boto来提取密钥的权限吗?是否有一种标准的方法来测试这些权限是针对每个人还是某个特定的人,以及它们是什么?

此外,一旦我确定某个密钥是否具有限制权限,我是否可以通过向"所有人"添加读取权限来以编程方式更改它们?

谢谢

python permissions amazon-s3 boto

7
推荐指数
1
解决办法
5821
查看次数

使用zlib压缩和解压缩UTF-8数据的正确方法是什么?

我有一个非常长的JSON消息,其中包含超出ASCII表的字符.我把它转换成一个字符串如下:

messStr = json.dumps(message,encoding='utf-8', ensure_ascii=False, sort_keys=True)
Run Code Online (Sandbox Code Playgroud)

我需要使用将其大小限制为X字节的服务来存储此字符串.我想将JSON字符串拆分为长度为X的片段并分别存储它们.我遇到了一些问题(这里描述)所以我想压缩字符串切片来解决这些问题.我试着这样做:

ss = mStr[start:fin]    # get piece of length X
ssc = zlib.compress(ss) # compress it
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到以下错误zlib.compress:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in position 225: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

压缩UTF-8字符串的正确方法是什么,然后解压缩它的正确方法是什么?

python compression json utf-8 python-2.x

7
推荐指数
2
解决办法
1万
查看次数

在Ubuntu上构建Caffe:make无法找到Boost的包含文件

我按照这些说明安装和构建Caffe及其依赖项.我建造了Boost并在最后得到了这个:

The following directory should be added to compiler include paths:
   /home/ubuntu/Caffe/boost_1_57_0
The following directory should be added to linker library paths:
   /home/ubuntu/Caffe/boost_1_57_0/stage/lib
Run Code Online (Sandbox Code Playgroud)

当我make all在caffe目录中运行时,我得到了这个:

CXX src/caffe/blob.cpp
In file included from ./include/caffe/blob.hpp:8:0,
             from src/caffe/blob.cpp:4:
./include/caffe/common.hpp:4:32: fatal error: boost/shared_ptr.hpp: No such file or directory
compilation terminated.
make: *** [.build_release/src/caffe/blob.o] Error 1
Run Code Online (Sandbox Code Playgroud)

我需要修改它才能找到include(和lib)文件?特定的环境变量?在caffe的Makefile中设置?别的什么?

ubuntu boost include caffe

7
推荐指数
2
解决办法
1万
查看次数

迭代dynamodb表时出现ProvisionedThroughputExceededException错误

我正在尝试将DynamoDB表备份到S3.由于某些原因,通过AWS控制台上的导出来执行此操作不起作用,而且由于表格不是那么大,我尝试使用基于boto的脚本来执行此操作.这是我脚本的主要部分:

import boto.dynamodb2
from boto.dynamodb2.table import Table
c_ddb2 = boto.dynamodb2.connect_to_region(...)
table  = Table("myTable",connection=c_ddb2)
# also connect to S3 
scanres = table.scan()
for item in scanres:
    # process and store next item
Run Code Online (Sandbox Code Playgroud)

我收到以下异常:

Traceback (most recent call last):
  File "/home/.../ddb2s3.py", line 155, in <module>
    main()
  File "/home/.../ddb2s3.py", line 124, in main
    for it in scanres:
  File "/usr/local/lib/python2.7/dist-packages/boto/dynamodb2/results.py", line 62, in next
    self.fetch_more()
  File "/usr/local/lib/python2.7/dist-packages/boto/dynamodb2/results.py", line 144, in fetch_more
    results = self.the_callable(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/boto/dynamodb2/table.py", line 1213, in _scan
    **kwargs …
Run Code Online (Sandbox Code Playgroud)

boto amazon-web-services throughput amazon-dynamodb

7
推荐指数
1
解决办法
5719
查看次数

C#PDFSharp:如何从PDF中删除文本的示例?

我有一个相当简单的任务:我需要读取PDF文件并写出其图像内容,同时忽略其文本内容.所以基本上我需要做"另存为文本"的补充.

理想情况下,我宁愿避免任何形式的图像内容重新压缩,但如果不可能,也可以.

是如何做到的例子?

谢谢!

c# text pdfsharp

6
推荐指数
2
解决办法
2万
查看次数

如何使用boto获取所有版本的S3密钥并取消删除?

我有一段时间的S3存储桶,但现在才开始版本控制.尝试用它来试图找出我只是通过版本控制得到什么样的检测保护,而不激活"MFA删除"选项.

我上传了一个测试文件,然后将其删除,然后重新上传两次.现在,使用S3浏览器工具,我看到该文件的4个版本:#1,#2(删除),#3和#4(当前).如果我boto用来获取最新版本,我可以提取它version_id:

import boto
c=boto.connect_s3()
b=c.get_bucket('my-bucket')
k = b.get_key('test2/dw.txt')
print k.version_id
Run Code Online (Sandbox Code Playgroud)

但是如何获得给定密钥的version_id的完整列表?如果我想要检索密钥的第1版(已删除),我是否需要先使用版本#2 id来"取消删除"它?

最后,此删除保护(创建删除标记)是否与打开版本控制之前上载的旧文件一起使用?

谢谢

versioning amazon-s3 boto undelete

6
推荐指数
1
解决办法
4082
查看次数

Bash:如何将一个进程的 stdout 和 stderr 通过管道传输到两个不同的进程?

myProcess1我有一个同时生成 std​​out 和 stderr 输出的进程。我想将两个输出流通过管道传输到两个不同的下游进程, myProcess2并且myProcess3,这将处理数据,然后将结果转储到两个不同的文件中。是否可以使用单个命令来完成此操作?如果没有,第二好的方法是运行两个单独的命令,一个用于处理stdout,另一个用于处理stderr。在这种情况下,第一次运行将是:

myProcess1 | myProcess2 > results-out.txt
Run Code Online (Sandbox Code Playgroud)

类似的处理命令是什么stderr?谢谢

bash stdout pipe stderr

6
推荐指数
1
解决办法
1243
查看次数

查找键以相同前缀开头的字典值的更有效方法

我有一个字典,其密钥以共享相同前缀的集合形式出现,如下所示:

d = { "key1":"valA", "key123":"valB", "key1XY":"valC",
      "key2":"valD", "key2-22":"valE" }
Run Code Online (Sandbox Code Playgroud)

给定一个查询字符串,我需要查找与以该前缀开头的键相关联的所有值,例如query="key1"我需要获取["valA", "valB", "valC"]

我的下面的实现工作,但对于大量的查询来说太慢了,因为字典d有大约30,000个键,大多数键的长度超过20个字符:

result = [d[s] for s in d.keys() if s.startswith(query)]
Run Code Online (Sandbox Code Playgroud)

是否有更快/更有效的方法来实现这一点?

python lookup performance dictionary startswith

6
推荐指数
1
解决办法
1290
查看次数

Python:如何通过两个字段对dicts数组进行排序?

我对Python有些新意见......

我通过读取包含JSON消息的文件获得了一系列的dicts,即使用以下内容:

import json
ws = []
with open('messages.txt', 'r') as f:
    for line in f:
        data = json.loads(line)
        ws.append(data)
Run Code Online (Sandbox Code Playgroud)

除了别的以外,每个JSON消息还有三个字段:"日期"和"类型"和"位置".我需要先按日期对数组进行排序,然后按相同日期的每个块中的类型进行排序,然后按相同类型的每个块中的位置进行排序.我怎样才能做到这一点?太多了!

python arrays sorting

5
推荐指数
1
解决办法
1254
查看次数

AWS S3到Glacier:备份工作了吗?

我正在尝试使用lyfecycle管理选项将我的Amazon S3文件夹中的数据备份到Glacier.我选择了存储桶中的一个文件夹进行测试,并创建了一个生命周期规则,指出具有该前缀的对象需要在30天后迁移到Glacier.我今天创建了规则但是这些文件都超过了30天,所以我希望它们能够立即迁移.但我正在查看该S3文件夹,并没有注意到任何更改.如何确定备份是否实际发生?

lifecycle amazon-s3 amazon-glacier

5
推荐指数
1
解决办法
2267
查看次数