阿里云-归档存储-SDK手册-D_第1页
阿里云-归档存储-SDK手册-D_第2页
阿里云-归档存储-SDK手册-D_第3页
阿里云-归档存储-SDK手册-D_第4页
阿里云-归档存储-SDK手册-D_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、归档存储SDK使用手册归档存储/SDK使用手册归档存储/SDK使用手册 PAGE 98 PAGE 98SDK使用手册Python 概述Python SDKOAS API参考手册(API)第一章基Vault、Archive、Mupltipart Upload、Job,这部分内容本手册将不再详述。Python SDKoascmdSDK,oascmd,oascmd的使用方法请移步 OAS命令行工具。有更高开发需求的用户SDKPython SDK 接口分为两种形态,分别为低级接口和高级接口。其中,低级接口置于 oas 模块内,高级接口置oas.ease低级接口HTTPURLRESTfulRESTful

2、 接口均对应于低级接口的一个方法。每个低级接口返回 HTTPResponse 原始对象,用户须根据 API在oascmd中,通过命令行参数,用户即可以方便地调用每一个低级接口。高级接口为了简化用户的开发流程,缩短学习曲线,SDK 在低级接口的基础上提供更抽象的高级接口。高级接口在低级接口的基础上,进一步封装了校验码生成、自动重试、断点续传等高级功能。用户在使用过程中不需要关心高 级接口内部实际调用的是哪个RESTful接口,只需按照所需的业务类型调用接口即可,如上传、查询等。使用建议建议用户使用高级接口,这样会使得用户的程序逻辑更加简明。但当所需功能没有被包含在高级接口内时,建 议用户参考高级

3、接口的实现,在其基础上增加相应的定制功能,同时,欢迎用户把相关需求反映给 归档存储 开发团队,对于合理的需求,会在接下来的版本中得到实现。若用户需要更细粒度的操作,则可直接调用低级接 口,根据实际使用场景进行封装。邮件推送/SMTP接口说明邮件推送/SMTP接口说明Demo程序参考最佳实践-Python。高级接口高级接口中的所有方法均为阻塞操作,在操作没有完成之前不会返回。所有接口都可能会抛出两种异常,分别 为OASServerError和OASClientError,具体描述请参阅Exceptions一节。import logging import syshandler = logging.

4、StreamHandler(sys.stdout) handler.setFormatter(logging.Formatter(%(asctime)s %(message)s) import logging import syshandler = logging.StreamHandler(sys.stdout) handler.setFormatter(logging.Formatter(%(asctime)s %(message)s) handler.setLevel(logging.INFO)log = logging.getLogger(oas.ease.uploader) log.

5、addHandler(handler) log.setLevel(logging.INFO)Vault类Vault是用户所有操作的入口点。要实例化Vault对象,需要通过Vault的类方法,其中create_vault、get_vault_by_id和get_vault_by_name是简单工厂方法,返回Vault对象,list_all_vaults返回Vault list。这些类方法都需要以OASAPI对象作为参数(参见低级接口概述部分)。对于上传操作,可以直接调用成员方法upload_archive,接口内部会根据文件大小自动选择Normal Upload或Multipart Upload

6、方式,并实现了多线程并行上传和失败重试。对于Multipart Upload任务,用户也可调用成员方法initiate_uploader获得Uploader对象再进行上传(参见Uploader一节)。使用后一种方法,用户可获 得时机保存Multipart Upload的任务ID,若任务没有成功完成,可在之后调用成员方法recover_uploader传入任务ID进行续传。用户应根据业务需要选择合适的方法。对于下载操作,可调用成员方法retrieve_inventory或retrieve_archive获得Job对象再进行下载(参见Job一节)。下面按照功能分组,介绍Vault的接口。成员变量V

7、ault对象包含了Vault的JSON描述中的所有字段,其中JSON标签与变量之间的转换关系如下表所示,各个字段的具体含义请参考API文档4.1.3一节的返回体部分。JSON标签变量名类型CreationDatecreation_datestringLastInventoryDatelast_inventory_datestringNumberOfArchivesnumber_of_archivesintSizeInBytessizeintVaultIdidstringVaultNamenamestring构造方法类Vault包含了三个简单工厂方法用于构造Vault对象,三个类方法均需OASA

8、PI对象作为参数,OASAPI的构造请参阅低级接口的概述部分。create_vault类方法。新建指定名称的Vault。定义def create_vault(cls, api, name)参数api:OASAPI name:string待新建的Vault的名称,名称应遵守API手册4.1.1节中Vault命名规范。返回值Vaultget_vault_by_id类方法。获取指定ID的Vault。定义def get_vault_by_id(cls, api, vault_id)参数DRDS/服务条款与价格模型DRDS/服务条款与价格模型api:OASAPIvault_id:string待检索的Va

9、ult的ID。返回值Vaultget_vault_by_name类方法。获取指定名称的Vault。定义def get_vault_by_name(cls, api, vault_name)参数api:OASAPI vault_name:string待检索的Vault的名称。返回值VaultVault删除delete_vault_by_id类方法。删除指定ID的Vault。定义def delete_vault_by_id(cls, api, vault_id)参数api:OASAPI vault_id:string企业级分布式应用服务 EDAS/API参考手册企业级分布式应用服务 EDAS/AP

10、I参考手册待删除的Vault的ID。返回值Nonedelete_vault_by_name类方法。删除指定名称的Vault。定义def delete_vault_by_name(cls, api, vault_name)参数- api:OASAPI vault_name:string待删除的Vault的名称。返回值None delete删除当前Vault。定义def delete(self)参数None返回值None状态查询所有查询方法默认返回全部的检索结果,用户不需要对Marker标识进行处理。list_all_vaults类方法。返回用户持有的所有Vault。定义def list_all_

11、vaults(cls, api)参数- api:OASAPI返回值Vault listlist_all_multipart_uploads返回Vault下的全部Multipart Upload任务。定义def list_all_multipart_uploads(self)参数None返回值Uploader list list_all_jobs返回Vault下的所有Job任务。定义def list_all_jobs(self)参数None返回值Job listArchive操作upload_archive上传指定文件到当前Valut,成功上传后返回相应的Archive ID。定义def upl

12、oad_archive(self, file_path, desc=None)参数file_path:string待上传的文件路径。desc:string可选参数。Archive的描述字段。返回值string:Archive ID initiate_uploader新建Multipart Upload任务。定义def initiate_uploader(self, file_path, desc=None)参数file_path:string待上传的文件路径。desc:string可选参数。Archive的描述字段。返回值Uploaderrecover_uploader续传指定的Multipa

13、rt Upload任务。定义def recover_uploader(self, upload_id)参数upload_id:stringMultipart Upload任务的ID。返回值Uploaderdelete_archive删除指定ID的Archive。定义def delete_archive(self, archive_id)参数archive_id:string待删除的Archive的ID。返回值NoneJob操作get_job获取指定ID的Job任务。定义def get_job(self, job_id)参数job_id:stringJob任务的ID。返回值Jobretrieve

14、_archive新建类型为archive-retrieval的Job任务。定义def retrieve_archive(self, archive_id, desc=None, byte_range=None):参数archive_id:string待查询的Archive的ID。desc:string可选参数。Job任务的描述字段。byte_range:tuple可选参数。长度为2,元素分别为字节长度的起点和终点(含)。返回值Jobretrieve_inventory新建类型为inventory-retrieval的Job任务。定义def retrieve_inventory(self, de

15、sc=None)参数desc:string可选参数。Job任务的描述字段。返回值Jobpull_from_oss新建类型为pull-from-oss的Job任务。定义def pull_from_oss(self, osshost, bucket, object, desc=None)参数osshost:stringjob的源oss域名bucket:stringjob任务的oss Bucketobject:stringjob任务的oss Objectdesc:string可选参数。Job任务的描述字段。返回值Jobpush_to_oss新建类型为push-to-oss的Job任务。定义def p

16、ush_to_oss(self, archive_id, osshost, bucket, object, desc=None)参数- archive_id:string待转储的archive_idosshost:stringjob的源oss域名HTTPDNS/接口参考手册HTTPDNS/接口参考手册bucket:stringjob任务的oss Bucketobject:stringjob任务的oss Objectdesc:string可选参数。Job任务的描述字段。返回值JobUploaderUploader是Multipart Upload任务的抽象。要获取Uploader对象,可通过Va

17、ult的三个成员方法,包括:initiate_uploaderrecover_uploaderlist_all_multipart_uploads其中,initiate_uploader、recover_uploader返回Uploader对象。list_all_multipart_uploads返回Uploader list。initiate_uploader用于新建Multipart Upload任务,可直接调用Uploader的成员方法start开始上传。recover_uploader和list_all_multipart_uploads返回的Uploader用于续传Multipart

18、 Upload任务,应调用Uploader的成员方法resume继续上传。成员变量Uploader对象包含了Multipart Upload的JSON描述中的所有字段,其中JSON标签与变量之间的转换关系如下表所示,各个字段的具体含义请参考API文档4.3.5一节的返回体部分。JSON标签变量名类型ArchiveDescriptiondescriptionstringCreationDatecreation_datestringMultipartUploadIdidstringPartSizeInBytespart_sizeintPropertysize_completed已上传的字节数。成员

19、方法start开始上传任务。定义def start(self)参数None返回值String:Archive ID resume恢复上传任务。定义def resume(self, file_path)参数file_path:string待上传的文件路径。返回值String:Archive ID cancel取消上传任务。定义def cancel(self)参数None返回值NoneJobJob是Job任务的抽象。根据下载文件的大小,Job内部会自动进行分块并行下载,并实现了断点续传和简单的 出错重试。在使用时,用户需要注意Job任务并不是实时完成的(参见OAS API文档-1.1.6节),用户

20、应调用Job的成员方法update_status更新任务状态,并通过检查成员变量completed确认任务是否完成。当任务完成时,可 通过调用download_to_file或download_by_range开始下载。用户也可直接设置download_to_file和download_by_range方法的block参数,当block为True时,接口内部会循环等待至Job完成再开始下载,用户不需调用手工更新任务状态。对于未完成的下载任务,Job内部会自动创建一个进度存储文件,该进度文件路径为用户指定的文件保存路径加 上.oas后缀。若用户希望重新下载整个文件,不进行续传,可以手动删除该进度

21、文件,否则应保留该文件,当 任务完成时,该文件会自动删除。成员变量Job对象包含了Job的JSON描述中的所有字段,其中JSON标签与变量之间的转换关系如下表所示,各个字段的 具体含义请参考API文档4.4.4一节的返回体部分。JSON标签变量名类型ActionactionstringArchiveContentEtagetagstringArchiveIdarchive_idstringArchiveSizeInBytesarchive_sizeintCompletedcompletedbooleanCompletionDatecompletion_datestringCreationDat

22、ecreation_datestringInventorySizeInBytesinventory_sizeintJobDescriptiondescriptionstringJobIdidstringStatusCodestatus_codestringStatusMessagestatus_messagestringPropertysize_completed已下载的字节数成员方法update_status更新Job的任务状态。定义def update_status(self)参数None返回值Nonedownload_by_range下载指定字节范围到文件。定义def download_

23、by_range(self, byte_range, file_path=None, file_obj=None, chunk_size=None, block=True)参数byte_range:tuple长度为2,两个元素分别为字节长度的起点和终点(含)。file_path:string file_obj:file object二选一参数,下载到指定的文件路径或保存到指定的文件对象。当两个参数均提供时,结果不确定。chunk_size:int可选参数。每次读写的块大小,默认为1048576(1MB)。block:boolean可选参数。当block为False时,直接开始下载,若Job未完

24、成会抛出异常。当block为True时,循环等 待至Job完成,再开始下载。默认为True。download_to_file下载Job任务输出到指定文件路径。定义def download_to_file(self, file_path, chunk_size=None, block=True)参数file_path:string文件保存的路径。chunk_size:int可选参数。每次读写的块大小,默认为1048576(1MB)。block:int可选参数。当block为False时,直接开始下载,若Job未完成会抛出异常。当block为True时,循环等 待至Job完成,再开始下载。默认为T

25、rue。说明ResponseOASResponse是HttpResponse的简单抽象。OASResponse是字典对象,HttpResponse中的头部信息以键值对的形式存储在OASResponse中。对于类型为JSON的响应,OASResponse会自动解析JSON数据并保存为字典。对于类型为二进制流的响应,可通过成员方法read读取返回体中的数据。Exceptions根据出错原因的不同,SDK把异常分为两种不同类型,分别为OAServerError,和OASClientError。OASServerErrorOASServerError是指一次完整的HTTP请求中,服务器返回了错误响应。

26、各个成员变量的含义见下表。具体错误信息请参阅API文档第5节错误响应。成员变量类型含义headersdictHTTP响应中的头部,以键值对存储,所有键均为小写request_idstring出错的请求的ID值,见API文档2.3.3节statusintHTTP状态码codestring错误代码,见API文档2.3.3节typestring错误类型,见API文档2.3.3节messagestring错误信息,见API文档2.3.3节OASClientErrrorOASClientError表示客户端异常,可能原因包括网络连接出错、文件读写出错等,具体出错原因可通过查看成员变量message获得。

27、异常仅作为标记错误类型,没有实现额外的方法。此外,UploadArchiveError、DownloadArchiveError和HashDoesNotMatchError均继承于OASClientError,作为更细一级的异常分类,分别代表上传出错、下载出错和校验出错。Utilsutils中包含的是高级接口所使用的公共工具方法,用户在开发时可直接使用这些方法。文件操作is_file_like判断指定对象是否支持read操作。定义def is_file_like(obj)参数obj:object返回值booleancontent_length根据输入类型的不同,自动获取目标的长度。对于无法处理

28、的类型,抛出ValueError异常。定义def content_length(content)参数content返回值intopen_file当提供file_obj参数时,返回file_obj;否则以mode默认打开file_path。定义def open_file(file_path=None, file_obj=None, mode=r)参数file_path:string file_obj:file object mode:string可选参数。打开模式,默认为rb。返回值file objectRange操作range_size计算指定字节范围的长度。定义def range_size(

29、byte_range)参数byte_range:tuple长度为2,元素分别为字节长度的起点和终点(含)。返回值intcalc_num_part计算长度为size_total的文件,以part_size长度进行分块的总分块数。定义def calc_num_part(part_size, size_total)参数part_size:intPart的字节长度。size_total:int文件总字节长度。返回值intcalc_ranges计算长度为size_total的文件,以part_size长度进行分块的所有分块字节范围。定义def calc_ranges(part_size, size_to

30、tal)参数part_size:intPart的字节长度。size_total:int文件总字节长度。返回值tuple list:每个元组长度为2,分别为分块的字节起点和终点(含)。校验码计算校验码是归档存储用于判断archive完整性的手段,etag与tree-etag是校验码的两种方式。本节中compute_etag_from_string、compute_etag_from_file、compute_etag_from_file、compute_etag_from_file_obj三个函数中的任何一个函数可以用来计算etag校验码,、compute_tree_etag_from_file

31、、compute_tree_etag_from_file_obj、compute_combine_tree_etag_from_list几个函数都是用来计算tree-etag校验码的。可以同时计算出etag、tree-etag两个校验码,并 通过数组返回。compute_etag_from_string计算指定字符串的etag。定义def compute_etag_from_string(content)参数content:string待计算的字符串。返回值string说明compute_etag_from_file计算指定文件的etag。定义def compute_etag_from_fil

32、e(file_path, offset=0, size=None, chunk_size=1048576)参数file_path:string待计算的文件路径。offset:int可选参数。计算的字节起始点(含),默认为0。size:int可选参数。待计算的字节长度,默认为offset起的所有字节的长度。chunk_size:int可选参数。每次读取的块大小,默认为1048576(1MB)。返回值stringcompute_etag_from_file_obj计算指定文件对象的etag。定义def compute_etag_from_file_obj(file_obj, offset=0, s

33、ize=None, chunk_size=1048576)参数file_obj:file object待计算的文件对象。offset:int可选参数。计算的字节起始点(含),默认为0。size:int可选参数。待计算的字节长度,默认为offset起的所有字节的长度。chunk_size:int可选参数。每次读取的块大小,默认为1048576(1MB)。返回值stringcompute_tree_etag_from_file计算指定文件的tree-etag校验码。定义def compute_tree_etag_from_file(file_path, offset=0, size=None, c

34、hunk_size=1048576)参数file_path:string待计算的文件路径。offset:int可选参数。计算的字节起始点(含),默认为0。size:int可选参数。待计算的字节长度,默认为offset起的所有字节的长度。chunk_size:int可选参数。每次读取的块大小,默认为1048576(1MB)。返回值stringcompute_tree_etag_from_file_obj计算指定文件对象的tree-etag。定义def compute_tree_etag_from_file_obj(file_obj, offset=0, size=None, chunk_size

35、=1048576)参数file_obj:file object待计算的文件对象。offset:int可选参数。计算的字节起始点(含),默认为0。size:int可选参数。待计算的字节长度,默认为offset起的所有字节的长度。chunk_size:int可选参数。每次读取的块大小,默认为1048576(1MB)。返回值stringcompute_combine_tree_etag_from_list根据各个分块的tree-etag所组成的list,计算整个文件的校验码。定义def compute_combine_tree_etag_from_list(tree_etag_list)参数tree

36、_etag_list:list列表元素为每个分块的tree-etag。返回值stringcompute_hash_from_file计算指定文件的etag及tree-etag校验码。消息服务/API使用手册消息服务/API使用手册定义def compute_hash_from_file(file_path, offset=0, size=None, chunk_size=1048576)参数file_path:string待计算的文件路径。offset:int可选参数。计算的字节起始点(含),默认为0。size:int可选参数。待计算的字节长度,默认为offset起的所有字节的长度。chunk

37、_size:int可选参数。每次读取的块大小,默认为1048576(1MB)。返回值(string,string)返回的是两个校验码数组:(etag,tree-etag)compute_hash_from_file_obj计算指定文件对象的etag及tree-etag校验码。定义def compute_hash_from_file_obj(file_obj, offset=0, size=None, chunk_size=1048576)参数file_obj:file object待计算的文件对象。offset:int可选参数。计算的字节起始点(含),默认为0。size:int可选参数。待计算

38、的字节长度,默认为offset起的所有字节的长度。chunk_size:int可选参数。每次读取的块大小,默认为1048576(1MB)。返回值(string, string)返回的是两个校验码数组:(etag,tree-etag)低级接口类OASAPI是归档存储 API的基础实现,其开放的接口和API手册所描述的RESTful接口分别一一对应。OASAPI的实例化需要提供服务器地址(参见OAS API手册-2.1.1服务地址)和可选的端口,以及用户认证信息,包括Access Key ID和Access Key Secret。OASAPI所开放的所有接口均返回对象HTTPResponse,下文

39、中res默认指HTTPResponse对象。用户可通过获取返回头部参数或res.read()获取返回体。对于HTTP返 回体格式为JSON的数据,下文以rjson表示解析后的JSON数据。关于HTTPResponse的更详细使用,请参见Python官方文档关于httplib的说明。Vault操作创建Vault定义def create_vault(self, vault_name)参数vault_name:stringVault的名称,名称应遵守API手册4.1.1节中Vault命名规范。返回值HTTPResponse说明创建指定名称的Vault,并返回Vault ID。可通过res.statu

40、s检查调用是否成功,对于成功的操作,可通过res.getheader(x-oas-vault-id)获取成功创建的Vault的ID值。删除Vault定义def delete_vault(self, vault_id)参数vault_id:string待删除Vault的ID。返回值HTTPResponse说明删除指定ID的Vault。成功的调用要求给定的Vault ID存在,并且指定的Vault为空,即不包含任何Archive。可通过res.status检查调用是否成功。获取Vault信息定义def get_vault_desc(self, vault_id)参数vault_id:stringV

41、ault的ID。返回值HTTPResponse说明获取指定ID的Vault描述。对于成功的调用,可通过解析HTTP返回体中的JSON获取相关信息,JSON的各个字 段解释详见API手册4.1.3节中的返回体。Vault列表定义def list_vault(self, marker=None, limit=None)参数marker:string可选参数。指明所请求的列表起点,与API手册4.1.4节中的请求参数描述一致。limit:int可选参数。限制返回的Vault数量,与API手册4.1.4节中的请求参数描述一致。返回值HTTPResponse说明获取用户的Vault列表。对于成功的调用,

42、可通过解析HTTP返回体中的JSON获取相关信息。可通过marker参数。rjsonVaultList是Vault描述 信息数组。关于JSON的各个字段的更详细解释见API手册4.1.4节中的返回体。Archive操作上传Archive定义def post_archive(self, vault_id, content, etag, tree_etag, desc=None)def post_archive_from_reader(self, vault_id, reader, content_length, etag, tree_etag, desc=None)参数vault_id:stri

43、ng指定保存Archive的Vault的ID。content待上传的字节流。MongoDBMongoDB/最佳实践reader实现了read接口的对象,如file object。content_length:int待上传的Archive的字节长度。etag:string待上传的文件的etag校验码,详细计算方法请参阅API文档2.5.1一节。tree_etag:string待上传文件的tree_etag校验码。desc:string可选参数。Archive的描述信息。返回值HTTPResponse说明上传Archive至指定的Vault,并返回Archive ID。对于已存在于内存的数据,可直

44、接调用post_archive;对于文件上传,可使用post_archive_from_reader。所有超出content_length长度的数据会被忽略。对于成功的操作,可通过res.getheader(x-oas-archive-id)获取相应的Archive ID。关于Archive上传的限制,请参见OAS API手册-4.2.1节的描述。删除Archive定义def delete_archive(self, vault_id, archive_id)参数vault_id:string待删除的Archive所属Vault的ID。archive_id:string归档存储/最佳实践归档存

45、储/最佳实践待删除的Archive的ID。返回值HTTPResponse说明删除指定的Archive。可通过检查res.status判断调用是否成功。Multipart Upload操作关于Multipart Upload操作的完整流程请参考API手册1.1.4节。初始化Multipart Upload任务定义def create_multipart_upload(self, vault_id, partsize, desc=None)参数vault_id:string上传任务所属Vault的ID。partsize:int指定Part的字节长度,请参阅API手册4.3.1节中描述关于Part长

46、度的限制。desc:string可选参数,Archive的描述信息。返回值HTTPResponse说明新建Multipart Upload任务,并返回Upload ID。对于成功的操作,可通过res.getheader(x-oas-multipart- upload-id)获得任务ID,用于后续的Part上传。获取Multipart Upload任务列表定义弹性伸缩/常见问题弹性伸缩/常见问题def list_multipart_upload(self, vault_id, marker=None, limit=None)参数vault_id:string待查询的目标Vault的ID。mark

47、er:string可选参数,指明所请求的列表起点,与API手册4.3.2节中的请求参数描述一致。limit:int可选参数,限制返回的任务数量,与API手册4.3.2节中的请求参数描述一致。返回值HTTPResponse说明获取指定Vault下Multipart Upload任务。对于成功地调用,可通过解析HTTP返回体中的JSON获取相关信息。可通过rjsonMarker判断是否还有后续列表,该字段可用于下次请求的marker参数。rjsonUploadsList是任务描述信息数组。关于JSON的各个字段的更详细解释见API手册4.3.2节中的返回体。删除Multipart Upload任务

48、定义def delete_multipart_upload(self, vault_id, upload_id)参数vault_id:string待删除的任务所属Vault的ID。upload_id:string待删除任务的ID。返回值HTTPResponse说明删除指定任务。可通过res.status检查调用是否成功。Part上传定义def post_multipart(self, vault_id, upload_id, content, prange, etag, tree_etag)def post_multipart_from_reader(self, vault_id, uploa

49、d_id, reader, content_length, prange, etag, tree_etag)参数vault_id:string上传任务所属Vault的ID。upload_id:string待上传的Part所属的任务ID。content:string待上传的字节流。reader实现了read接口的对象,如file object。partsize:int待上传的Part的字节长度。prange:string待上传的Part在整个Archive中的字节范围,字节以0开始计数,格式为start-end。prange所指定范 围的长度应与partsize一致,所有超出partsize长度

50、的数据会被忽略。除最后一个Part外,partsize应 与初始化Multipart Upload任务时所指定的partsize一致。参数定义与API手册4.3.4一节中描述部分一致。etag:string容器服务/服务编排文档容器服务/服务编排文档待上传的Part的etag校验码,详细计算方法请参阅API文档2.5.2一节。tree_etag:string待上传Part的tree_etag校验码。返回值HTTPResponse说明上传Archive中指定字节范围的Part,注意prange定义应符合API手册指定的规范。对于已存在于内存的数据,可直接调用post_multipart;对于文件

51、上传,可使用post_multipart_from_reader。可通过res.status检查上传是否成功。获取Part列表定义def list_multipart(self, vault_id, upload_id, marker=None, limit=None)参数vault_id:string上传任务所属Vault的ID。upload_id:string待查询的目标Multipart Upload任务的ID。marker:string可选参数。指明所请求的Part列表起点,与API手册4.3.5节中的请求参数描述一致。limit:int可选参数。限制返回的Part数量,与API手册4

52、.3.5节中的请求参数描述一致。返回值HTTPResponse说明获取目标Vault下指定Multipart Upload任务已上传完成的Part列表。对于成功的调用,可通过解析HTTP返回体中的JSON获取相关信息。可通过rjsonMarker判断是否还有后续列表,该字段可用于下次请求的是Part描述信息数组。关于JSON的各个字段的更详细解释见API手册4.3.5节中的返 回体。Part合并定义def complete_multipart_upload(self, vault_id, upload_id, filesize, tree_etag)参数vault_id:string上传任务所

53、属Vault的ID。upload_id:string所要进行合并的Multipart Upload任务ID。filesize:int所要进行合并的Archive总字节大小。tree_etag:string待上传文件的tree-etag校验码。返回值HTTPResponse说明对某个已完成所有Part上传的任务进行合并。可通过res.status检查合并是否成功。对于成功的操作,可通过res.getheader(x-oas-archive-id)获取成功合并后创建的Archive ID。Job操作初始化Job任务定义def create_job(self, vault_id, job_type,

54、 archive_id=None, desc=None, byte_range=None)def create_oss_transfer_job(self, vault_id, job_type, osshost, bucket, object, archive_id=None, desc=None)参数vault_idJob任务所属Vault的ID。job_type任务类型。可选值为archive-retrieval和inventory-retrieval。与API文档4.4.1一节中的请求体中的Type描述一致。archive_id当job_type为inventory-retrieval

55、时,忽略该参数。当 job_type为archive-retrieval时,该参数是指待下载的Archive的ID。desc可选参数。Job任务的描述信息。byte_range可选参数。待下载的Archive字节范围,与API文档4.4.1一节中的请求体中得RetrievalByteRange描 述一致。osshost当job_type为pull-from-oss或push-to-oss时,该参数是指转储job的oss域名。bucket当job_type为pull-from-oss或push-to-oss时,该参数是指转储job的oss bucket。object当job_type为pull-

56、from-oss或push-to-oss时,该参数是指转储job的 oss Object。说明新建Job任务并返回Job ID,根据所要操作的类型选择合适的job_type,当任务类型是archive-retrieval时,需要提供目标Archive的ID,以及可选的下载范围byte_range。可通过res.status检查新建是否成功。对于成功新 建的Job任务,可通过res.getheader(x-oas-job-id)获取JobID,该ID可用于后续Job任务状态查询。create_oss_transfer_job函数适用于在归档存储与OSS产品之间的跨产品数据归档、提档,帮助用户在阿

57、里云 上实现无中转的数据迁移。Job Output下载定义def fetch_job_output(self, vault_id, job_id, orange=None)参数vault_id:string目标Job任务所属Vault的ID。job_id:string目标Job的ID。orange:string可选参数。所要下载的Job输出字节范围,格式为start-end,字节以0开始计数。参数定义与API手册5.4.3一节中描述部分一致。返回值HTTPResponse说明下载已完成的Job任务输出的结果。对于Job类型为inventory-retrieval的任务,rjsonArchive

58、List是所查询 的Archive列表信息。关于JSON的各个字段的更详细解释见API手册5.4.2一节中返回体的描述。对于Job类型为archive-retrieval的任务,HTTP返回体是所请求范围的字节。对于大文件的下载,建议设置orange参数分块下载。获取Job列表定义def list_job(self, vault_id, marker=None, limit=None)参数vault_id:string待查询的Vault的ID。marker:string可选参数,指明所请求的Job列表起点,与API手册5.4.3节中的请求参数描述一致。limit:int可选参数,限制返回的Jo

59、b数量,与API手册5.4.3节中的请求参数描述一致。返回值HTTPResponse说明获取指定Vault下的Job列表。对于成功的调用,可通过解析HTTP返回体中的JSON获取相关信息。可通过marker参数。rjsonJobList是Job描述信 息数组。关于JSON的各个字段的更详细解释见API手册5.4.3节中的返回体。Job任务状态查询定义def get_jobdesc(self, vault_id, job_id)参数vault_id:string目标Job任务所属Vault的ID。job_id:string目标Job任务的ID。返回值HTTPResponse说明查看指定ID的Jo

60、b任务状态。对于成功的调用,可通过解析HTTP返回体中的JSON获取相关信息,JSON的各个 字段解释详见API手册4.4.4节中的返回体。数据传输/常见问题FAQ数据传输/常见问题FAQ命令行工具oascmd.pyPython SDK,还有分别与 归档存储 API 文档描述的接口一一对应的底层命令。其中,内的参数为可选参数。字符串前缀 oas:/ 仅仅作为资源标识,没有其他含义。除了特别说明外,所有结果均直接输出至命令行,输出结果为友好的自解释可读文本,因此下文不再对 oascmd.py 输出进行详细说明。授权设置oascmd.py 使用前需要进行授权信息的配置格式config -h -ho

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论