You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

oss.go 982 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package cloudstorage
  2. import (
  3. "fmt"
  4. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  5. "log"
  6. )
  7. type OSSClient struct {
  8. client *oss.Client
  9. bucket *oss.Bucket
  10. }
  11. func (c *OSSClient) InitiateMultipartUpload(objectName string) (string, error) {
  12. imur, err := c.bucket.InitiateMultipartUpload(objectName)
  13. if err != nil {
  14. return "", fmt.Errorf("failed to initiate multipart upload: %w", err)
  15. }
  16. return imur.UploadID, nil
  17. }
  18. func NewOSSClient(obs ObjectStorage) *OSSClient {
  19. // 创建OSSClient实例。
  20. client, err := oss.New(obs.Endpoint, obs.AK, obs.SK)
  21. if err != nil {
  22. log.Fatalf("Error: %v", err)
  23. }
  24. bucket, err := client.Bucket(obs.Bucket)
  25. if err != nil {
  26. log.Fatalf("Error: %v", err)
  27. }
  28. return &OSSClient{
  29. client: client,
  30. bucket: bucket,
  31. }
  32. }
  33. func (c *OSSClient) UploadPart() {
  34. }
  35. func (c *OSSClient) CompleteMultipartUpload() (string, error) {
  36. return "", nil
  37. }
  38. func (c *OSSClient) AbortMultipartUpload() {
  39. }
  40. func (c *OSSClient) Close() {
  41. // 关闭client
  42. }