文件哈希值计算

最近更新时间:2023-11-13 12:40:01

我的收藏

简介

本文档提供关于数据万象文件哈希值计算的 API 概览以及 SDK 示例代码。
API
操作描述
以同步请求的方式进行文件哈希值计算,实时返回计算得到的哈希值。
以提交任务的方式进行文件哈希值计算任务。
主动查询指定的文件哈希值计算任务结果。

哈希值计算同步请求

功能说明

以同步请求的方式进行文件哈希值计算,返回得到的哈希值。

方法原型

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 string
Type string
AddToHeader 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 *FileHashCodeResult
Input *FileProcessInput
}
参数名称
描述
类型
FileHashCodeResult
文件哈希值的结果。详情请参见 FileProcessJobOptions.Input
Container
Input
输入文件的基本信息。详情请参见 FileProcessJobOptions.Operation.FileHashCodeResult
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.Name
Tag string
Input *FileProcessInput
Operation *FileProcessJobOperation
QueueId string
CallBackFormat string
CallBackType string
CallBack string
CallBackMqConfig *NotifyConfigCallBackMqConfig
}

type FileProcessInput struct {
Object string
}

type FileProcessJobOperation struct {
FileHashCodeConfig *FileHashCodeConfig
FileHashCodeResult *FileHashCodeResult
UserData string
}

type FileHashCodeConfig struct {
Type string
AddToHeader bool
}

type FileHashCodeResult struct {
MD5 string
SHA1 string
SHA256 string
FileSize int
LastModified string
Etag string
}

type NotifyConfigCallBackMqConfig struct {
MqMode string
MqRegion string
MqName 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
任务所在的 队列 ID
String
CallBackFormat
任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式。
String
CallBackType
任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型。
String
CallBack
任务回调的地址,优先级高于队列的回调地址。
String
CallBackMqConfig
任务回调 TDMQ 配置,当 CallBackType 为 TDMQ 时必填。详情见 CallBackMqConfig
Container

返回结果说明

type FileProcessJobResult struct {
JobsDetail FileProcessJobResult
}
type FileProcessJobResult struct {
Code string
Message string
JobId string
Tag string
State string
CreationTime string
StartTime string
EndTime string
QueueId string
Input *FileProcessInput
Operation *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
该任务的输入文件路径,详情请参见 FileProcessJobOptions.Input
Container
Operation
该任务的规则,详情请参见 FileProcessJobOptions.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
该任务的输入文件路径,详情请参见 FileProcessJobOptions.Input
Container
Operation
该任务的规则,详情请参见 FileProcessJobOptions.Operation
Container