ossuni

package
v0.0.0-...-40fbf91 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 25, 2018 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AliyunSTSRequest

type AliyunSTSRequest struct {
	Action          string
	RoleArn         string
	RoleSessionName string
	Policy          string
	DurationSeconds int

	// public param
	Format           string // JSON
	Version          string // 2015-04-01
	AccessKeyId      string
	Signature        string
	SignatureMethod  string // HMAC-SHA1
	SignatureVersion string // 1.0
	SignatureNonce   string // 随机数
	Timestamp        string // 2012-06-01T12:00:00Z
}

type AssumedRoleUser

type AssumedRoleUser struct {
	Arn               string
	AssumedRoleUserId string
}

type Clienter

type Clienter interface {
	Init(config Config) error // first
	GetAuthToken()            // TODO
	STSCertificate(param STSParam) (interface{}, error)
	PutObject(param ObjectParam, reader io.Reader) error
	PutObjectFromFile(param ObjectParam, filePath string) error
	InitMultipartUpload(param ObjectParam) (InitMultipartUploadResult, error)
	AbortMultipartUpload(imur InitMultipartUploadResult) error
	CompleteMultipartUpload(imur InitMultipartUploadResult, parts []UploadPart) (CompleteMultipartUploadResult, error)
	UploadPart(imur InitMultipartUploadResult, reader io.Reader, size int64, partNumber int) (UploadPart, error)
	MultiPartUpload() // TODO
	GetAttachmentURL(param ObjectParam) string
	DeleteObject(param ObjectParam) error
}

func NewClient

func NewClient(ossType OssType) Clienter

type CompleteMultipartUploadResult

type CompleteMultipartUploadResult struct {
	Location string `xml:"Location"` // Object的URL
	Bucket   string `xml:"Bucket"`   // Bucket名称
	ETag     string `xml:"ETag"`     // Object的ETag
	Key      string `xml:"Key"`      // Object的名字
}

type Config

type Config struct {
	OssType OssType `json:"ossType"`
	Scheme  string  `json:"scheme"`

	// qcloud
	AppID       string `json:"appId"`       // qcloud appId
	SecretID    string `json:"secretId"`    // qcloud secretId
	SecretKey   string `json:"secretKey"`   // qcloud secretKey
	AuthExpired int64  `json:"authExpired"` // qcloud authExpired

	// aliyun
	AccessKeyID     string `json:"accessKeyID"`     //  aliyun accessKeyID
	AccessKeySecret string `json:"accessKeySecret"` // aliyun accessKeySecret
	Endpoint        string `json:"endpoint"`        // aliyun

	CdnURL string `json:"cdnUrl"`
}

type Credentials

type Credentials struct {
	AccessKeyId     string
	AccessKeySecret string
	SecurityToken   string
	Expiration      string
}

type InitMultipartUploadResult

type InitMultipartUploadResult struct {
	Bucket   string `xml:"Bucket"`   // Bucket名称
	Region   string `xml:"region"`   // Region
	Key      string `xml:"Key"`      // 上传Object名称
	UploadID string `xml:"UploadId"` // 生成的UploadId
}

type ObjectParam

type ObjectParam struct {
	Bucket string `json:"bucket"`
	Region string `json:"region"`
	Key    string `json:"key"`
}

type OssType

type OssType string
const (
	ALIYUN  OssType = "aliyun"
	TENCENT OssType = "qcloud"
)

type Policy

type Policy struct {
	Version    string
	Statements []Statement
}

type STSParam

type STSParam struct {
	Region             string // for qcloud
	Bucket             string // for qcloud
	SubAccessKeyId     string // for aliyun
	SubAccessKeySecret string // for aliyun
	RoleArn            string // for aliyun
	RoleSessionName    string
	ExpiredTime        uint
}

type STSResult

type STSResult struct {
	RequestId       string
	Credentials     Credentials
	AssumedRoleUser AssumedRoleUser
}

type Statement

type Statement struct {
	Effect    string
	Action    []string
	Resource  []string
	Condition string
}

type UploadPart

type UploadPart struct {
	PartNumber   int       `xml:"PartNumber"` // Part编号
	ETag         string    `xml:"ETag"`       // ETag缓存码
	Size         int64     `xml:"Size"`
	LastModified time.Time `xml:"LastModified"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL