2015-06-02 29 views
0

正如標題所說,博託的鑰匙是什麼?博託 - 鑰匙究竟是什麼?

  • 它封裝了什麼(字段,數據結構,方法等)?
  • 如何使用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() 

回答

3

在您的代碼示例中 - key是對存儲區內唯一標識符的對象引用。

將桶看作數據庫中的表 將鍵視爲表中的行 您引用存儲桶中的鍵(更好地稱爲對象)。

經常在博託(未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 
2

既然你似乎是在談論簡單存儲服務(S3),你會發現那些關於S3文檔第1頁的信息。

使用獨特的開發人員指定密鑰存儲和檢索每個對象。

密鑰是存儲桶中對象的唯一標識符。桶中的每個對象都只有一個鍵。由於存儲區,密鑰和版本ID的組合唯一標識了每個對象,因此Amazon S3可以視爲「存儲區+密鑰+版本」與對象本身之間的基本數據映射。 Amazon S3中的每個對象都可以通過Web服務端點,存儲桶名稱,密鑰和可選版本的組合來唯一地尋址。例如,在URL 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

的關鍵是隻是一個字符串 - 在「路徑和文件名」桶裏的對象,沒有一個領導/

+0

嗨,遺憾的響應晚。這是一個s3鍵,但是在這兩個鍵中,鍵似乎都是對象,因爲它們有與之相關的其他方法。 –

+0

你的問題還不太清楚。請編輯該問題,並添加一些您已看到和詢問的代碼示例。 –

+0

按照要求,請參閱修訂後的Micheal –