| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -9,12 +9,10 @@ import ( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						"strings" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectService ...
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// Object 相关 API
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectService 相关 API
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					type ObjectService service | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectGetOptions ...
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectGetOptions is the option of GetObject
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					type ObjectGetOptions struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ResponseContentType        string `url:"response-content-type,omitempty" header:"-"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ResponseContentLanguage    string `url:"response-content-language,omitempty" header:"-"` | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -43,7 +41,7 @@ func (s *ObjectService) Get(ctx context.Context, name string, opt *ObjectGetOpti | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						return resp, err | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectPutHeaderOptions ...
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectPutHeaderOptions the options of header of the put object
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					type ObjectPutHeaderOptions struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						CacheControl       string `header:"Cache-Control,omitempty" url:"-"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ContentDisposition string `header:"Content-Disposition,omitempty" url:"-"` | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -60,7 +58,7 @@ type ObjectPutHeaderOptions struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						//XCosObjectType string `header:"x-cos-object-type,omitempty" url:"-"`
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectPutOptions ...
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectPutOptions the options of put object
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					type ObjectPutOptions struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						*ACLHeaderOptions       `header:",omitempty" url:"-" xml:"-"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						*ObjectPutHeaderOptions `header:",omitempty" url:"-" xml:"-"` | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -83,7 +81,7 @@ func (s *ObjectService) Put(ctx context.Context, name string, r io.Reader, opt * | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						return resp, err | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectCopyHeaderOptions ...
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectCopyHeaderOptions is the head option of the Copy
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					type ObjectCopyHeaderOptions struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XCosMetadataDirective           string `header:"x-cos-metadata-directive,omitempty" url:"-" xml:"-"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XCosCopySourceIfModifiedSince   string `header:"x-cos-copy-source-If-Modified-Since,omitempty" url:"-" xml:"-"` | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -96,21 +94,20 @@ type ObjectCopyHeaderOptions struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XCosCopySource string       `header:"x-cos-copy-source" url:"-" xml:"-"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectCopyOptions ...
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectCopyOptions is the option of Copy, choose header or body
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					type ObjectCopyOptions struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						*ObjectCopyHeaderOptions `header:",omitempty" url:"-" xml:"-"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						*ACLHeaderOptions        `header:",omitempty" url:"-" xml:"-"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectCopyResult ...
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectCopyResult is the result of Copy
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					type ObjectCopyResult struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XMLName      xml.Name `xml:"CopyObjectResult"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ETag         string   `xml:"ETag,omitempty"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						LastModified string   `xml:"LastModified,omitempty"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// Copy ...
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// Put Object Copy 请求实现将一个文件从源路径复制到目标路径。建议文件大小 1M 到 5G,
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// Copy 调用 PutObjectCopy 请求实现将一个文件从源路径复制到目标路径。建议文件大小 1M 到 5G,
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// 超过 5G 的文件请使用分块上传 Upload - Copy。在拷贝的过程中,文件元属性和 ACL 可以被修改。
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// 用户可以通过该接口实现文件移动,文件重命名,修改文件属性和创建副本。
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -153,7 +150,7 @@ func (s *ObjectService) Delete(ctx context.Context, name string) (*Response, err | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						return resp, err | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectHeadOptions ...
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectHeadOptions is the option of HeadObject
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					type ObjectHeadOptions struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						IfModifiedSince string `url:"-" header:"If-Modified-Since,omitempty"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -176,7 +173,7 @@ func (s *ObjectService) Head(ctx context.Context, name string, opt *ObjectHeadOp | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						return resp, err | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectOptionsOptions ...
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectOptionsOptions is the option of object options
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					type ObjectOptionsOptions struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Origin                      string `url:"-" header:"Origin"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						AccessControlRequestMethod  string `url:"-" header:"Access-Control-Request-Method"` | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -199,7 +196,6 @@ func (s *ObjectService) Options(ctx context.Context, name string, opt *ObjectOpt | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						return resp, err | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// Append ...
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// TODO Append 接口在优化未开放使用
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// Append请求可以将一个文件(Object)以分块追加的方式上传至 Bucket 中。使用Append Upload的文件必须事前被设定为Appendable。
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -231,7 +227,7 @@ func (s *ObjectService) Options(ctx context.Context, name string, opt *ObjectOpt | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// 	return resp, err
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// }
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectDeleteMultiOptions ...
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectDeleteMultiOptions is the option of DeleteMulti
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					type ObjectDeleteMultiOptions struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XMLName xml.Name `xml:"Delete" header:"-"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Quiet   bool     `xml:"Quiet" header:"-"` | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -239,7 +235,7 @@ type ObjectDeleteMultiOptions struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						//XCosSha1 string `xml:"-" header:"x-cos-sha1"`
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectDeleteMultiResult ...
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// ObjectDeleteMultiResult is the result of DeleteMulti
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					type ObjectDeleteMultiResult struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XMLName        xml.Name `xml:"DeleteResult"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						DeletedObjects []Object `xml:"Deleted,omitempty"` | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -250,14 +246,9 @@ type ObjectDeleteMultiResult struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} `xml:"Error,omitempty"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// DeleteMulti ...
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// Delete Multiple Object请求实现批量删除文件,最大支持单次删除1000个文件。
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// DeleteMulti 请求实现批量删除文件,最大支持单次删除1000个文件。
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// 对于返回结果,COS提供Verbose和Quiet两种结果模式。Verbose模式将返回每个Object的删除结果;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// Quiet模式只返回报错的Object信息。
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// 此请求必须携带x-cos-sha1用来校验Body的完整性。
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// https://www.qcloud.com/document/product/436/8289
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					func (s *ObjectService) DeleteMulti(ctx context.Context, opt *ObjectDeleteMultiOptions) (*ObjectDeleteMultiResult, *Response, error) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						var res ObjectDeleteMultiResult | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -272,7 +263,7 @@ func (s *ObjectService) DeleteMulti(ctx context.Context, opt *ObjectDeleteMultiO | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						return &res, resp, err | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// Object ...
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// Object is the meta info of the object
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					type Object struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Key          string `xml:",omitempty"` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ETag         string `xml:",omitempty"` | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |