摘要:注產品已作為歸檔存儲類型合并至對象存儲,目前不再向新用戶提供獨立的歸檔存儲服務。更多歸檔存儲類型的使用說明請參考數據歸檔方案。本文以為例,介紹如何使用進行空間管理與文件管理。每個腳本里面拿到這三個配置相關的環(huán)境變量。
注:UArchive 產品已作為“歸檔存儲”類型合并至 US3 對象存儲,目前不再向新用戶提供獨立的歸檔存儲服務。
如需使用更低成本的對象存儲服務,請至 US3 對象存儲控制臺 。更多 US3 歸檔存儲類型的使用說明請參考 數據歸檔方案。
本文以Python SDK為例,介紹如何使用SDK進行空間管理與文件管理。本文建議用戶使用Python 2。
本文使用到的SDK-Python下載地址:
SDK-Python
本源碼包含使用 Python 對 UCloud 的歸檔存儲業(yè)務進行空間和內容管理的 API,適用于 Python 2
requests
unittest(僅test_uarchive目錄下測試文件依賴)
執(zhí)行 %%python setup.py install%%
命令,安裝為 egg 包后使用
安裝成功后,以文檔上傳為例,進入 test_uarchive 文件夾,預先假定您已經在控制臺創(chuàng)建歸檔存儲空間。
接下來設置 UARCHIEVE_PUBLIC_KEYUARCHIEVE_PRIVATE_KEYUARCHIEVE_VAULT
環(huán)境變量。 環(huán)境變量不同的操作系統(tǒng)有不同的設置方法。在使用 bash 的 shell 里面可以直接 `%%export
UARCHIEVE_VAULT="abcefg"%%`。
每個 test 腳本里面拿到 public_key private_key vault 這三個配置相關的環(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)境已經準備完畢,可以開始您的 SDK 使用之旅啦!
注意:部分測試用例存在依賴關系: 刪除和激活存檔測試用例要先執(zhí)行上傳存檔。
#from uarchive import config
#設置上傳host后綴外網可用 .uarchive.ucloud.cn
config.set_default(uploadsuffix=YOUR_UPLOAD_SUFFIX)
#設置下載host后綴,比如CDN下載 .uarchive.ucloud.com.cn
config.set_default(downloadsuffix=YOUR_DOWNLOAD_SUFFIX)
#設置請求連接超時時間,單位為秒
config.set_default(connection_timeout=60)
#設置私有vault下載鏈接有效期單位為秒
config.set_default(expires=60)
#from uarchive import logger
locallogname = #完整本地日志文件名
logger.set_log_file(locallogname)
狀態(tài)碼 | 描述 |
---|---|
200 | 文件或者數據上傳成功 |
400 | 上傳到不存在的空間 |
401 | 上傳憑證錯誤 |
403 | API公私鑰錯誤 |
404 | 下載文件或數據不存在 |
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
### 普通上傳二進制數據流至歸檔存儲空間
from io import BytesIO
bio = BytesIO(u你好.encode(utf-8)) #二進制數據流
stream_key = #上傳數據流在空間中的名稱
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: # 網絡連接問題,續(xù)傳
ret resp = multipartuploadarchive_handler.resumeuploadfile()
else: # 服務或者客戶端錯誤
print(resp.error)
break
### 分片上傳一個全新的二進制數據流
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: # 網絡連接問題,續(xù)傳
ret resp = multipartuploadarchive_handler.resumeuploadstream()
else: # 服務器或者客戶端錯誤
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)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/126179.html
摘要:歸檔存儲空間英文名稱,是歸檔文件的組織單位,相當于目錄的作用,也是計費權限控制等功能的管理單位。歸檔文件英文名稱,是數據操作的基本單元,支持任意數據類型。主要概念注:UArchive 產品已作為歸檔存儲類型合并至 US3 對象存儲,目前不再向新用戶提供獨立的歸檔存儲服務。如需使用更低成本的對象存儲服務,請至 US3 對象存儲控制臺 。更多 US3 歸檔存儲類型的使用說明請參考 數據歸檔方案。...
摘要:更多歸檔存儲類型的使用說明請參考數據歸檔方案??刂婆_快速上手注產品已作為歸檔存儲類型合并至對象存儲,目前不再向新用戶提供獨立的歸檔存儲服務。創(chuàng)建歸檔存儲空間登錄控制臺,選擇右側歸檔存儲后進入歸檔存儲列表頁,選擇創(chuàng)建歸檔存儲空間按鈕。使用場景注:UArchive 產品已作為歸檔存儲類型合并至 US3 對象存儲,目前不再向新用戶提供獨立的歸檔存儲服務。如需使用更低成本的對象存儲服務,請至 US3...
摘要:介紹因產品升級,將暫停維護。只能依賴于工具進行相關操作。下載存檔下載一個激活的存檔,必須指定。請注意,在當前版本參數不能省略,這是一個,我們將在稍后的版本修正它刪除存檔刪除一個存檔必須指定。介紹(Introduction)因產品升級,UArchive 將暫停維護。請使用 US3 對象存儲歸檔類型,以獲取更優(yōu)惠更可靠的歸檔存儲服務:US3 產品價格UArchive是UCLOUD公司的歸檔存儲產...
摘要:計費因產品升級,將暫停維護。計費說明歸檔存儲按照存儲容量激活容量數據取回數據刪除不滿日時收取下載流量和請求次數等多個維度進行計費。存儲容量計費說明存儲容量按天進行結算與扣減,單價元天。購買時自動四舍五入取整到萬次。計費因產品升級,UArchive 將暫停維護。請使用 US3 對象存儲歸檔類型,以獲取更優(yōu)惠更可靠的歸檔存儲服務:US3 產品價格產品價格|計費項 | 價格 |...
閱讀 3538·2023-04-25 20:09
閱讀 3739·2022-06-28 19:00
閱讀 3060·2022-06-28 19:00
閱讀 3081·2022-06-28 19:00
閱讀 3175·2022-06-28 19:00
閱讀 2880·2022-06-28 19:00
閱讀 3047·2022-06-28 19:00
閱讀 2638·2022-06-28 19:00