65 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package oss
 | 
						|
 | 
						|
import (
 | 
						|
	"crypto/md5"
 | 
						|
	"encoding/hex"
 | 
						|
	"fmt"
 | 
						|
	"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
 | 
						|
	"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
 | 
						|
	"time"
 | 
						|
)
 | 
						|
 | 
						|
const (
 | 
						|
	multipartUploadKeys = "b4471b940d98"
 | 
						|
)
 | 
						|
 | 
						|
type InitMultipartUploadRequest struct {
 | 
						|
	*requests.JsonRequest
 | 
						|
	UploadType string `position:"Json" field:"upload_type"`
 | 
						|
	TargetType string `position:"Json" field:"target_type"`
 | 
						|
	TargetName string `position:"Json" field:"target_name"`
 | 
						|
	FileHash   string `position:"Json" field:"file_hash"`
 | 
						|
	Filepath   string `position:"Json" field:"filepath"`
 | 
						|
	ExtInfo    string `position:"Json" field:"ext_info"`
 | 
						|
}
 | 
						|
 | 
						|
type InitMultipartUploadResponse struct {
 | 
						|
	*responses.BaseResponse
 | 
						|
	Code int    `json:"code"`
 | 
						|
	Msg  string `json:"msg"`
 | 
						|
	Data struct {
 | 
						|
		FileUploaded bool   `json:"file_uploaded"`
 | 
						|
		UploadId     string `json:"upload_id,omitempty"`
 | 
						|
		Links        []Link `json:"links,omitempty"`
 | 
						|
		Hash         string `json:"hash,omitempty"`
 | 
						|
		Url          string `json:"url,omitempty"`
 | 
						|
		Filepath     string `json:"filepath,omitempty"`
 | 
						|
		FileName     string `json:"filename,omitempty"`
 | 
						|
	} `json:"data"`
 | 
						|
}
 | 
						|
 | 
						|
type Link struct {
 | 
						|
	Href   string `json:"href"`
 | 
						|
	Rel    string `json:"rel"`
 | 
						|
	Method string `json:"method"`
 | 
						|
}
 | 
						|
 | 
						|
func CreateInitMultipartUploadRequest() (req *InitMultipartUploadRequest) {
 | 
						|
	ts := fmt.Sprintf("%d", time.Now().Unix())
 | 
						|
	m := md5.Sum([]byte(ts + multipartUploadKeys))
 | 
						|
	sign := hex.EncodeToString(m[:])
 | 
						|
	req = &InitMultipartUploadRequest{
 | 
						|
		JsonRequest: &requests.JsonRequest{},
 | 
						|
	}
 | 
						|
 | 
						|
	req.InitWithApiInfo(HOST, VERSION, "/api/upload/multipart/init?_ts="+ts+"&_sign="+sign)
 | 
						|
	return
 | 
						|
}
 | 
						|
 | 
						|
func CreateInitMultipartUploadResponse() (resp *InitMultipartUploadResponse) {
 | 
						|
	resp = &InitMultipartUploadResponse{
 | 
						|
		BaseResponse: &responses.BaseResponse{},
 | 
						|
	}
 | 
						|
	return resp
 | 
						|
}
 |