简介
本文档提供关于数据万象文件哈希值计算的 API 概览以及 SDK 示例代码。
哈希值计算同步请求
功能说明
以同步请求的方式进行文件哈希值计算,返回得到的哈希值。
方法原型
func (s *CIService) GetFileHash(ctx context.Context, name string, opt *GetFileHashOptions) (*GetFileHashResult, *Response, error)
请求示例
opt := &cos.GetFileHashOptions{CIProcess: "filehash",Type: "md5",}res, _, err := c.CI.GetFileHash(context.Background(), "test.jpg", opt)
参数说明
type GetFileHashOptions struct {CIProcess stringType stringAddToHeader bool}
参数名称 | 描述 | 类型 | 是否必选 |
name | 执行操作的文件全路径。 | String | 是 |
CIProcess | 操作类型,哈希值计算固定为:filehash。 | String | 是 |
Type | 支持的哈希算法类型,有效值:md5、sha1、sha256。 | String | 是 |
AddToHeader | 是否将计算得到的哈希值,自动添加至文件的自定义 header,格式为:x-cos-meta-md5/sha1/sha256; 有效值: true、false,不填则默认为 false。 | Bool | 否 |
返回结果说明
type GetFileHashResult struct {FileHashCodeResult *FileHashCodeResultInput *FileProcessInput}
参数名称 | 描述 | 类型 |
FileHashCodeResult | Container | |
Input | Container |
提交哈希值计算任务
功能说明
以提交任务的方式进行文件哈希值计算,异步返回计算得到的哈希值。
方法原型
func (s *CIService) CreateFileProcessJob(ctx context.Context, opt *FileProcessJobOptions) (*FileProcessJobResult, *Response, error)
请求示例
createJobOpt := &cos.FileProcessJobOptions{Tag: "FileHashCode",Input: &cos.FileProcessInput{Object: "294028.zip",},Operation: &cos.FileProcessJobOperation{FileHashCodeConfig: &cos.FileHashCodeConfig{Type: "sha1",AddToHeader: true,},},}res, _, err := c.CI.CreateFileProcessJob(context.Background(), createJobOpt)
参数说明
type FileProcessJobOptions struct {XMLName xml.NameTag stringInput *FileProcessInputOperation *FileProcessJobOperationQueueId stringCallBackFormat stringCallBackType stringCallBack stringCallBackMqConfig *NotifyConfigCallBackMqConfig}type FileProcessInput struct {Object string}type FileProcessJobOperation struct {FileHashCodeConfig *FileHashCodeConfigFileHashCodeResult *FileHashCodeResultUserData string}type FileHashCodeConfig struct {Type stringAddToHeader bool}type FileHashCodeResult struct {MD5 stringSHA1 stringSHA256 stringFileSize intLastModified stringEtag string}type NotifyConfigCallBackMqConfig struct {MqMode stringMqRegion stringMqName string}
参数名称 | 描述 | 类型 | 是否必选 |
Tag | 创建任务的 Tag,目前仅支持:FileHashCode。 | String | 是 |
Input | 待操作的文件对象。 | Container | 是 |
Input.Object | 文件名,取值为文件在当前存储桶中的完整名称。 | String | 是 |
Operation | 操作规则。 | Container | 是 |
Operation.FileHashCodeConfig | 指定哈希值计算的处理规则。 | Container | 是 |
Operation.FileHashCodeConfig.Type | 哈希值的算法类型,有效值:MD5、SHA1、SHA256。 | String | 是 |
Operation.FileHashCodeConfig.AddToHeader | 是否将计算得到的哈希值添加至文件自定义 header,有效值:true、false,默认值为 false。自定义 header 根据 Type 的值变化。 例如 Type 值为MD5时,自定义 header 为 x-cos-meta-md5。 | String | 否 |
Operation.FileHashCodeResult | 计算得到的文件 hash 值信息,提交任务时不需要填写。 | Container | 否 |
Operation.UserData | 透传用户信息, 可打印的 ASCII 码, 长度不超过1024。 | String | 否 |
QueueId | String | 否 | |
CallBackFormat | 任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式。 | String | 否 |
CallBackType | 任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型。 | String | 否 |
CallBack | 任务回调的地址,优先级高于队列的回调地址。 | String | 否 |
CallBackMqConfig | Container | 否 |
返回结果说明
type FileProcessJobResult struct {JobsDetail FileProcessJobResult}type FileProcessJobResult struct {Code stringMessage stringJobId stringTag stringState stringCreationTime stringStartTime stringEndTime stringQueueId stringInput *FileProcessInputOperation *FileProcessJobOperation}
参数名称 | 描述 | 类型 |
JobsDetail | 任务的详细信息。 | Container |
Code | 错误码,只有 State 为 Failed 时有意义。 | String |
Message | 错误描述,只有 State 为 Failed 时有意义。 | String |
JobId | 新创建任务的 ID。 | String |
Tag | 新创建任务的 Tag:FileHashCode。 | String |
State | 任务的状态,为 Submitted、Running、Success、Failed、Pause、Cancel 其中一个。 | String |
CreationTime | 任务的创建时间。 | String |
StartTime | 任务的开始时间。 | String |
EndTime | 任务的结束时间。 | String |
QueueId | 任务所属的队列 ID。 | String |
Input | Container | |
Operation | Container |
查询哈希值计算结果
功能说明
查询一个文件处理任务,根据任务 ID 查询任务详情。
方法原型
func (s *CIService) DescribeFileProcessJob(ctx context.Context, jobid string) (*FileProcessJobResult, *Response, error)
请求示例
jobid := "<jobid>"res, _, err := c.CI.DescribeFileProcessJob(context.Background(), jobid)
参数说明
参数名称 | 描述 | 类型 |
jobid | 文件处理任务 ID。 | String |
返回结果说明
type FileProcessJobResult struct {JobsDetail *FileProcessJobsDetail}type FileProcessJobsDetail struct {Code string `xml:",omitempty"`Message string `xml:",omitempty"`JobId string `xml:",omitempty"`Tag string `xml:",omitempty"`State string `xml:",omitempty"`CreationTime string `xml:",omitempty"`StartTime string `xml:",omitempty"`EndTime string `xml:",omitempty"`QueueId string `xml:",omitempty"`Input *FileProcessInput `xml:",omitempty"`Operation *FileProcessJobOperation `xml:",omitempty"`}
参数名称 | 描述 | 类型 |
JobsDetail | 任务的详细信息。 | Container |
Code | 错误码,只有 State 为 Failed 时有意义。 | String |
Message | 错误描述,只有 State 为 Failed 时有意义。 | String |
JobId | 新创建任务的 ID。 | String |
Tag | 新创建任务的 Tag:FileHashCode。 | String |
State | 任务的状态,为 Submitted、Running、Success、Failed、Pause、Cancel 其中一个。 | String |
CreationTime | 任务的创建时间。 | String |
StartTime | 任务的开始时间。 | String |
EndTime | 任务的结束时间。 | String |
QueueId | 任务所属的队列 ID。 | String |
Input | Container | |
Operation | Container |