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