boto - 究竟是什么关键?

时间:2015-06-02 23:26:38

标签: python-2.7 amazon-web-services amazon-s3 boto

如标题所示,boto中的关键是什么?

  • 它封装了什么(字段,数据结构,方法等)?
  • 如何使用key / boto?
  • 访问AWS桶中文件的文件内容

我无法在其官方文档或任何其他第三方网站上找到此信息。有人能提供这个信息吗?

以下是key对象的一些使用示例:

def download_file(key_name, storage):
    key = bucket.get_key(key_name)
    try:
        storage.append(key.get_contents_as_string())
    except:
        print "Some error message."

for key in keys_to_process:
    pool.spawn_n(download_file, key.key, file_contents)
pool.waitall()

2 个答案:

答案 0 :(得分:3)

在您的代码示例中 - key是对存储桶中唯一标识符的对象引用。

将存储桶视为数据库中的表 将密钥视为表中的行 你引用桶中的密钥(更好地称为对象)。

经常在boto(不是boto3)中像这样工作

from boto.s3.connection import S3Connection
connection = S3Connection()  # assumes you have a .boto or boto.cfg setup
bucket = connection.get_bucket('my_bucket_name_here') # this is like the table name in SQL, select OBJECT form TABLENAME
key = bucket.get_key('my_key_name_here') this is the OBJECT in the above SQL example.  key names are a string, and there is a convention that says if you put a '/' in the name, a viewer/tool should treat it like a path/folder for the user, e.g.  my/object_name/is_this is really just a key inside the bucket, but most viewers will show a my folder, and an object_name folder, and then what looks like a file called is_this simply by UI convention

答案 1 :(得分:2)

由于您似乎在谈论简单存储服务(S3),因此您将在S3文档的第1页上找到该信息。

  

使用开发人员分配的唯一密钥存储和检索每个对象。

     

密钥是存储桶中对象的唯一标识符。存储桶中的每个对象只有一个密钥。由于存储桶,密钥和版本ID的组合唯一地标识每个对象,因此可以将Amazon S3视为"存储桶+密钥+版本"之间的基本数据映射。和对象本身。 Amazon S3中的每个对象都可以通过Web服务端点,存储桶名称,密钥和可选的版本进行唯一地寻址。例如,在网址http://doc.s3.amazonaws.com/2006-03-01/AmazonS3.wsdl中," doc"是桶的名称和" 2006-03-01 / AmazonS3.wsdl"是关键。

http://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html

密钥只是一个字符串 - "路径和文件名"存储桶中的对象,没有前导/