aws 服务器之间文件转发,aws bucket之间相互拷贝数据
在s3是使用過程中,最經(jīng)常的操作基本就是拷貝了,s3上是按 這么結(jié)構(gòu)存儲數(shù)據(jù)的,在s3上可以創(chuàng)建bucket,然后就可以在bucket里放入數(shù)據(jù)了,每個 bucket下也可以建立不同目錄,?這也是s3方便大家操作模擬的目錄,其實(shí)在s3里全部都是對象存儲,靠的是key來關(guān)聯(lián)每個具體對象,這里的key 一般就是文件名, 每個目錄下放不同的文件(為方便理解我們統(tǒng)一叫文件,其實(shí)在s3是面向?qū)ο蟠鎯Φ?#xff0c;每個數(shù)據(jù)專業(yè)名稱應(yīng)該叫對象),日常操作跟我們使用本地盤很相似,既然 很相似,那 剪切 、復(fù)制的操作基本就會平常了,所以一般來說,如果你想從一個bucket里拷貝文件到另一個bucket里,很簡單的思路是,可以從源bucket中下載 下來文件,然后再上傳剛到你目的bucket中,不過如果你真這樣做就顯得很low了,因?yàn)闀速M(fèi)很多不必要的流量,其實(shí)s3提供了從一個bucket拷 貝到另一個bucket的接口,很方便操作,不過s3只提供了copy的功能,如果你想從一個bucket中剪切一個文件過來,對不起,s3的api接口 不提供這個功能,但你可以自己通過復(fù)制,刪除來實(shí)現(xiàn),比如你想剪切某bucket的一個對象,你可以先復(fù)制到目的bucket,然后在源bucket中刪 除,其實(shí)就變相的實(shí)現(xiàn)了剪切功能了,講了這么多,那接下來我們要具體說下bucket間的數(shù)據(jù)復(fù)制了,基本思路就是構(gòu)造一個函數(shù),這個函數(shù)只是包括四個參 數(shù):
源bucket名稱,源對象名稱,目的bucket名稱,目的對象名稱。
以下是代碼:
#!/usr/bin/env python
import boto
def copyobject(src_bucket, src_keyname, dst_bucket, dst_keyname):
s3 = boto.connect_s3()
src_bucket = s3.lookup(src_bucket)
src_keyname = src_bucket.lookup(src_keyname)
src_keyname.copy(dst_bucket, dst_keyname, preserve_acl=True)
copyobject(“bicher”, “install.html”, “bicherweb”, “install.html”)
測試結(jié)果就是從bicher中拷貝install.html文件到bicherweb中,對象名稱沒有修改,其中preserve_acl參數(shù)的意思是 如果是True,拷貝過去的對象會攜帶之前的訪問權(quán)限(acl)到目的bucket,如果是False,會設(shè)置問缺省權(quán)限。
總結(jié)
以上是生活随笔為你收集整理的aws 服务器之间文件转发,aws bucket之间相互拷贝数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: idea服务器怎么配置文件,Idea部署
- 下一篇: 惠普 g5 服务器 centos安装系统