摘要:注產(chǎn)品已作為歸檔存儲類型合并至對象存儲,目前不再向新用戶提供獨立的歸檔存儲服務(wù)。更多歸檔存儲類型的使用說明請參考數(shù)據(jù)歸檔方案。本文以為例,介紹如何使用進(jìn)行空間管理與文件管理。每個腳本里面拿到這三個配置相關(guān)的環(huán)境變量。
注:UArchive 產(chǎn)品已作為“歸檔存儲”類型合并至 US3 對象存儲,目前不再向新用戶提供獨立的歸檔存儲服務(wù)。
如需使用更低成本的對象存儲服務(wù),請至 US3 對象存儲控制臺 。更多 US3 歸檔存儲類型的使用說明請參考 數(shù)據(jù)歸檔方案。
本文以Python SDK為例,介紹如何使用SDK進(jìn)行空間管理與文件管理。本文建議用戶使用Python 2。
本文使用到的SDK-Python下載地址:
SDK-Python
本源碼包含使用 Python 對 UCloud 的歸檔存儲業(yè)務(wù)進(jìn)行空間和內(nèi)容管理的 API,適用于 Python 2
requests
unittest(僅test_uarchive目錄下測試文件依賴)
執(zhí)行 %%python setup.py install%%
命令,安裝為 egg 包后使用
安裝成功后,以文檔上傳為例,進(jìn)入 test_uarchive 文件夾,預(yù)先假定您已經(jīng)在控制臺創(chuàng)建歸檔存儲空間。
接下來設(shè)置 UARCHIEVE_PUBLIC_KEYUARCHIEVE_PRIVATE_KEYUARCHIEVE_VAULT
環(huán)境變量。 環(huán)境變量不同的操作系統(tǒng)有不同的設(shè)置方法。在使用 bash 的 shell 里面可以直接 `%%export
UARCHIEVE_VAULT="abcefg"%%`。
每個 test 腳本里面拿到 public_key private_key vault 這三個配置相關(guān)的環(huán)境變量。如下所示:
public_key = os.getenv("UARCHIEVE_PUBLIC_KEY")
private_key = os.getenv("UARCHIEVE_PRIVATE_KEY")
#再控制臺創(chuàng)建好空間后,把名字填入這里。
vault = os.getenv("UARCHIEVE_VAULT")
環(huán)境變量配置完成后執(zhí)行 %%python test_putarchive.py%%
所有測試用例執(zhí)行后,如果打印 OK,恭喜您,環(huán)境已經(jīng)準(zhǔn)備完畢,可以開始您的 SDK 使用之旅啦!
注意:部分測試用例存在依賴關(guān)系: 刪除和激活存檔測試用例要先執(zhí)行上傳存檔。
#from uarchive import config
#設(shè)置上傳host后綴外網(wǎng)可用 .uarchive.ucloud.cn
config.set_default(uploadsuffix=YOUR_UPLOAD_SUFFIX)
#設(shè)置下載host后綴,比如CDN下載 .uarchive.ucloud.com.cn
config.set_default(downloadsuffix=YOUR_DOWNLOAD_SUFFIX)
#設(shè)置請求連接超時時間,單位為秒
config.set_default(connection_timeout=60)
#設(shè)置私有vault下載鏈接有效期單位為秒
config.set_default(expires=60)
#from uarchive import logger
locallogname = #完整本地日志文件名
logger.set_log_file(locallogname)
狀態(tài)碼 | 描述 |
---|---|
200 | 文件或者數(shù)據(jù)上傳成功 |
400 | 上傳到不存在的空間 |
401 | 上傳憑證錯誤 |
403 | API公私鑰錯誤 |
404 | 下載文件或數(shù)據(jù)不存在 |
416 | 文件范圍請求不合法 |
from uarchive import getarchivefilelist
getarchivefilelist_handler = getarchivefilelist.GetArchiveFileList(public_key private_key)
#通過 marker 循環(huán)獲取文件列表,marker為空,從頭拉取文件列表
marker = ""
prefix = "*"
vault = "hello"
ret resp = getarchivefilelist_handler.getarchivefilelist(vault prefix marker)
assert resp.status_code == 200
logger.info(resp.content)
assert len(ret[DataSet]) != 0
for item in ret[DataSet]:
key = item[ArchiveName].encode(utf-8)
logger.info(key)
nextMarker = ret[NextMarker]
logger.info(NextMarker is {0}.format(nextMarker))
localfile = #本地文件名
put_key = #上傳文件在空間中的名稱
from uarchive import putarchive
putarchive_handler = putarchive.PutArchive(public_key private_key)
### 普通上傳文件至歸檔存儲空間
ret resp = putarchive_handler.putfile(vault put_key localfile header=None)
assert resp.status_code == 200
### 普通上傳二進(jìn)制數(shù)據(jù)流至歸檔存儲空間
from io import BytesIO
bio = BytesIO(u你好.encode(utf-8)) #二進(jìn)制數(shù)據(jù)流
stream_key = #上傳數(shù)據(jù)流在空間中的名稱
ret resp = putarchive_handler.putfile(vault stream_key bio)
public_savefile = #保存文件名
private_savefile = #保存文件名
range_savefile = #保存文件名
put_key = #文件在空間中的名稱
stream_key = #文件在空間中的名稱
from uarchive import downloadarchive
downloadarchive_handler = downloadarchive.DownloadArchive(public_key private_key)
# 從歸檔存儲空間下載文件
ret resp = downloadarchive_handler.download_archive(vault put_key private_savefile)
assert resp.status_code == 200
vault = #歸檔存儲空間名稱
delete_key = #文件在空間中的名稱
from uarchive import deletearchive
deletearchive_handler = deletearchive.DeleteArchive(public_key private_key)
### 刪除歸檔存儲空間的文件
ret resp = deletearchive_handler.delete_archive(vault delete_key)
assert resp.status_code == 204
vault = #歸檔存儲空間名稱
sharding_key = #上傳文件在空間中的名稱
localfile = #本地文件名
from uarchive import multipartuploadarchive
multipartuploadarchive_handler = multipartuploadarchive.MultipartUploadArchive(public_key private_key)
### 分片上傳一個全新的文件
ret resp = multipartuploadarchive_handler.uploadfile(vault sharding_key localfile)
while True:
if resp.status_code == 200: # 分片上傳成功
break
elif resp.status_code == -1: # 網(wǎng)絡(luò)連接問題,續(xù)傳
ret resp = multipartuploadarchive_handler.resumeuploadfile()
else: # 服務(wù)或者客戶端錯誤
print(resp.error)
break
### 分片上傳一個全新的二進(jìn)制數(shù)據(jù)流
from io import BytesIO
bio = BytesIO(u你好.encode(utf-8))
ret resp = multipartuploadarchive_handler.uploadstream(vault sharding_key bio)
while True:
if resp.status_code == 200: # 分片上傳成功
break
elif resp.status_code == -1: # 網(wǎng)絡(luò)連接問題,續(xù)傳
ret resp = multipartuploadarchive_handler.resumeuploadstream()
else: # 服務(wù)器或者客戶端錯誤
print(resp.error)
break
from uarchive import vaultmanager
vaultmanager_handler = vaultmanager.VaultManager(public_key private_key)
### 創(chuàng)建新的vault
vaultname = #創(chuàng)建的空間名稱
ret resp = vaultmanager.createvault(vaultname)
assert resp.status_code == 200
### 刪除vault
vaultname = #待刪除的空間名稱
ret resp = vaultmanager.deletevault(vaultname)
print(ret)
### 獲取vault信息
vaultname = #待查詢的空間名稱
ret resp = vaultmanager.describevault(vault)
print(ret)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/126179.html
摘要:歸檔存儲空間英文名稱,是歸檔文件的組織單位,相當(dāng)于目錄的作用,也是計費權(quán)限控制等功能的管理單位。歸檔文件英文名稱,是數(shù)據(jù)操作的基本單元,支持任意數(shù)據(jù)類型。主要概念注:UArchive 產(chǎn)品已作為歸檔存儲類型合并至 US3 對象存儲,目前不再向新用戶提供獨立的歸檔存儲服務(wù)。如需使用更低成本的對象存儲服務(wù),請至 US3 對象存儲控制臺 。更多 US3 歸檔存儲類型的使用說明請參考 數(shù)據(jù)歸檔方案。...
摘要:更多歸檔存儲類型的使用說明請參考數(shù)據(jù)歸檔方案??刂婆_快速上手注產(chǎn)品已作為歸檔存儲類型合并至對象存儲,目前不再向新用戶提供獨立的歸檔存儲服務(wù)。創(chuàng)建歸檔存儲空間登錄控制臺,選擇右側(cè)歸檔存儲后進(jìn)入歸檔存儲列表頁,選擇創(chuàng)建歸檔存儲空間按鈕。使用場景注:UArchive 產(chǎn)品已作為歸檔存儲類型合并至 US3 對象存儲,目前不再向新用戶提供獨立的歸檔存儲服務(wù)。如需使用更低成本的對象存儲服務(wù),請至 US3...
摘要:介紹因產(chǎn)品升級,將暫停維護(hù)。只能依賴于工具進(jìn)行相關(guān)操作。下載存檔下載一個激活的存檔,必須指定。請注意,在當(dāng)前版本參數(shù)不能省略,這是一個,我們將在稍后的版本修正它刪除存檔刪除一個存檔必須指定。介紹(Introduction)因產(chǎn)品升級,UArchive 將暫停維護(hù)。請使用 US3 對象存儲歸檔類型,以獲取更優(yōu)惠更可靠的歸檔存儲服務(wù):US3 產(chǎn)品價格UArchive是UCLOUD公司的歸檔存儲產(chǎn)...
摘要:計費因產(chǎn)品升級,將暫停維護(hù)。計費說明歸檔存儲按照存儲容量激活容量數(shù)據(jù)取回數(shù)據(jù)刪除不滿日時收取下載流量和請求次數(shù)等多個維度進(jìn)行計費。存儲容量計費說明存儲容量按天進(jìn)行結(jié)算與扣減,單價元天。購買時自動四舍五入取整到萬次。計費因產(chǎn)品升級,UArchive 將暫停維護(hù)。請使用 US3 對象存儲歸檔類型,以獲取更優(yōu)惠更可靠的歸檔存儲服務(wù):US3 產(chǎn)品價格產(chǎn)品價格|計費項 | 價格 |...
閱讀 3670·2023-04-25 20:09
閱讀 3831·2022-06-28 19:00
閱讀 3194·2022-06-28 19:00
閱讀 3227·2022-06-28 19:00
閱讀 3342·2022-06-28 19:00
閱讀 2999·2022-06-28 19:00
閱讀 3237·2022-06-28 19:00
閱讀 2777·2022-06-28 19:00