oss/signer/signer.go (34 lines of code) (raw):
package signer
import (
"context"
"net/http"
"time"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
const (
SubResource = "SubResource"
SignTime = "SignTime"
)
type SigningContext struct {
//input
Product *string
Region *string
Bucket *string
Key *string
Request *http.Request
SubResource []string
AdditionalHeaders []string
Credentials *credentials.Credentials
AuthMethodQuery bool
// input and output
Time time.Time
ClockOffset time.Duration
// output
SignedHeaders map[string]string
StringToSign string
// for test
signTime *time.Time
}
type Signer interface {
Sign(ctx context.Context, signingCtx *SigningContext) error
}
type NopSigner struct{}
func (*NopSigner) Sign(ctx context.Context, signingCtx *SigningContext) error {
return nil
}