我看了:https://ceph.com/docs/master/radosgw/s3/python/
但是,我正在寻找一种方法来访问AWS S3,而不仅仅是部分密钥。
所以我可能有这样的钥匙:
MyPlace酒店/ yourplace / ourplace /大小/颜色
我可能有尺寸和颜色,我怎么才能得到与之匹配的钥匙?
我是否需要做以下事情:
TheDesiredKeys
For k in all keys
if key.split("/")[4] == desiredSize && key.split("/")[5] == desiredColor
TheDesiredKeys.append(k)
然后去取那些位置的所有对象?我觉得有一种更简单的方法吗?
我也试过了:
bucket.list()
但是在所有的例子中它都像:
b - bucket.list()
for key in b:
doSomething
但是我希望只是获取一个对象中的所有键。但是,当我在调试器中查看bucket.list()时,我没有看到所有的键?
答案 0 :(得分:0)
使用前缀很容易找到密钥。
但是对于后缀或任何不是真正的前缀,你必须遍历所有键。
bucket.get_all_keys
的{{3}}提供参数prefix
>>> import boto
>>> con = boto.connect_s3()
>>> bucket_name="bucketname"
>>> bucket=con.get_bucket(bucket_name)
>>> keys = bucket.get_all_keys(prefix="region/cz/")
>>> for key in keys:
... print key.name
...
region/cz/Prague.gif
region/cz/Ostrava.gif
注意:boto.connect_s3()
假设您已配置系统,我为此使用BOTO_CONFIG
环境变量,但您也可以直接在此调用中指定凭据。