oss/api_op_bucket_style.go (173 lines of code) (raw):
package oss
import (
"context"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/signer"
)
type StyleList struct {
// The list of styles.
Styles []StyleInfo `xml:"Style"`
}
type StyleInfo struct {
// The time when the style was created.
CreateTime *string `xml:"CreateTime"`
// The time when the style was last modified.
LastModifyTime *string `xml:"LastModifyTime"`
// The category of this style。 Invalid value:image、document、video。
Category *string `xml:"Category"`
// The style name.
Name *string `xml:"Name"`
// The content of the style.
Content *string `xml:"Content"`
}
type StyleContent struct {
// The content of the style.
Content *string `xml:"Content"`
}
type PutStyleRequest struct {
// The name of the bucket.
Bucket *string `input:"host,bucket,required"`
// The name of the image style.
StyleName *string `input:"query,styleName,required"`
// The category of the style.
Category *string `input:"query,category"`
// The container that stores the content information about the image style.
Style *StyleContent `input:"body,Style,xml,required"`
RequestCommon
}
type PutStyleResult struct {
ResultCommon
}
// PutStyle Adds an image style to a bucket. An image style contains one or more image processing parameters.
func (c *Client) PutStyle(ctx context.Context, request *PutStyleRequest, optFns ...func(*Options)) (*PutStyleResult, error) {
var err error
if request == nil {
request = &PutStyleRequest{}
}
input := &OperationInput{
OpName: "PutStyle",
Method: "PUT",
Headers: map[string]string{
HTTPHeaderContentType: contentTypeXML,
},
Parameters: map[string]string{
"style": "",
},
Bucket: request.Bucket,
}
input.OpMetadata.Set(signer.SubResource, []string{"style", "styleName"})
if err = c.marshalInput(request, input, updateContentMd5); err != nil {
return nil, err
}
output, err := c.invokeOperation(ctx, input, optFns)
if err != nil {
return nil, err
}
result := &PutStyleResult{}
if err = c.unmarshalOutput(result, output, unmarshalBodyXmlMix); err != nil {
return nil, c.toClientError(err, "UnmarshalOutputFail", output)
}
return result, err
}
type ListStyleRequest struct {
// The name of the bucket.
Bucket *string `input:"host,bucket,required"`
RequestCommon
}
type ListStyleResult struct {
// The container that was used to query the information about image styles.
StyleList *StyleList `output:"body,StyleList,xml"`
ResultCommon
}
// ListStyle Queries all image styles that are created for a bucket.
func (c *Client) ListStyle(ctx context.Context, request *ListStyleRequest, optFns ...func(*Options)) (*ListStyleResult, error) {
var err error
if request == nil {
request = &ListStyleRequest{}
}
input := &OperationInput{
OpName: "ListStyle",
Method: "GET",
Headers: map[string]string{
HTTPHeaderContentType: contentTypeXML,
},
Parameters: map[string]string{
"style": "",
},
Bucket: request.Bucket,
}
input.OpMetadata.Set(signer.SubResource, []string{"style"})
if err = c.marshalInput(request, input, updateContentMd5); err != nil {
return nil, err
}
output, err := c.invokeOperation(ctx, input, optFns)
if err != nil {
return nil, err
}
result := &ListStyleResult{}
if err = c.unmarshalOutput(result, output, unmarshalBodyXmlMix); err != nil {
return nil, c.toClientError(err, "UnmarshalOutputFail", output)
}
return result, err
}
type GetStyleRequest struct {
// The name of the bucket.
Bucket *string `input:"host,bucket,required"`
// The name of the image style.
StyleName *string `input:"query,styleName,required"`
RequestCommon
}
type GetStyleResult struct {
// The container that stores the information about the image style.
Style *StyleInfo `output:"body,Style,xml"`
ResultCommon
}
// GetStyle Queries the information about an image style of a bucket.
func (c *Client) GetStyle(ctx context.Context, request *GetStyleRequest, optFns ...func(*Options)) (*GetStyleResult, error) {
var err error
if request == nil {
request = &GetStyleRequest{}
}
input := &OperationInput{
OpName: "GetStyle",
Method: "GET",
Headers: map[string]string{
HTTPHeaderContentType: contentTypeXML,
},
Parameters: map[string]string{
"style": "",
},
Bucket: request.Bucket,
}
input.OpMetadata.Set(signer.SubResource, []string{"style", "styleName"})
if err = c.marshalInput(request, input, updateContentMd5); err != nil {
return nil, err
}
output, err := c.invokeOperation(ctx, input, optFns)
if err != nil {
return nil, err
}
result := &GetStyleResult{}
if err = c.unmarshalOutput(result, output, unmarshalBodyXmlMix); err != nil {
return nil, c.toClientError(err, "UnmarshalOutputFail", output)
}
return result, err
}
type DeleteStyleRequest struct {
// The name of the bucket.
Bucket *string `input:"host,bucket,required"`
// The name of the image style.
StyleName *string `input:"query,styleName,required"`
RequestCommon
}
type DeleteStyleResult struct {
ResultCommon
}
// DeleteStyle Deletes an image style from a bucket.
func (c *Client) DeleteStyle(ctx context.Context, request *DeleteStyleRequest, optFns ...func(*Options)) (*DeleteStyleResult, error) {
var err error
if request == nil {
request = &DeleteStyleRequest{}
}
input := &OperationInput{
OpName: "DeleteStyle",
Method: "DELETE",
Headers: map[string]string{
HTTPHeaderContentType: contentTypeXML,
},
Parameters: map[string]string{
"style": "",
},
Bucket: request.Bucket,
}
input.OpMetadata.Set(signer.SubResource, []string{"style", "styleName"})
if err = c.marshalInput(request, input, updateContentMd5); err != nil {
return nil, err
}
output, err := c.invokeOperation(ctx, input, optFns)
if err != nil {
return nil, err
}
result := &DeleteStyleResult{}
if err = c.unmarshalOutput(result, output, unmarshalBodyXmlMix); err != nil {
return nil, c.toClientError(err, "UnmarshalOutputFail", output)
}
return result, err
}