in cdn-aliyun/aliyun.go [320:354]
func (c *CDN) Upload(filePath string, file io.Reader, size int64) (err error) {
client, err := oss.New(c.Config.Endpoint, c.Config.AccessKeyID, c.Config.AccessKeySecret)
if err != nil {
log.Error(plugin.MakeTranslator(i18n.ErrMisStorageConfig), err)
return
}
bucket, err := client.Bucket(c.Config.BucketName)
if err != nil {
log.Error(plugin.MakeTranslator(i18n.ErrMisStorageConfig), err)
return
}
if !c.CheckFileType(filePath) {
log.Error(plugin.MakeTranslator(i18n.ErrUnsupportedFileType), filePath)
return
}
if size > c.maxFileSizeLimit() {
log.Error(plugin.MakeTranslator(i18n.ErrOverFileSizeLimit))
return
}
objectKey := c.createObjectKey(filePath)
request := &oss.PutObjectRequest{
ObjectKey: objectKey,
Reader: file,
}
respBody, err := bucket.DoPutObject(request, nil)
if err != nil {
log.Error(plugin.MakeTranslator(i18n.ErrUploadFileFailed), err)
return
}
defer respBody.Close()
return c.checkCDNAvailable(objectKey)
}