oss_test.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package test
  2. import (
  3. "cicv-data-closedloop/common/util"
  4. "cicv-data-closedloop/tools/plugin-compile/package/config"
  5. "fmt"
  6. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  7. "log"
  8. "testing"
  9. )
  10. func TestCompareSize(t *testing.T) {
  11. config.InitOss(true)
  12. // 1 下载oss文件到本地
  13. err := config.OssBucket.GetObjectToFile("1709907833304/demo.py", "D:\\demo.py")
  14. if err != nil {
  15. panic(err)
  16. }
  17. // 2 获取oss的Content-Type文件大小
  18. size, _ := util.GetOSSFileSize(config.OssBucket, "1709907833304/demo.py")
  19. fmt.Println("云上文件大小为", size)
  20. // 3 获取本地文件大小
  21. fileSize, err := util.GetFileSize("D:\\demo.py")
  22. fmt.Println("本地文件大小为", fileSize)
  23. // 4 比较大小
  24. }
  25. func TestDeleteDir(t *testing.T) {
  26. // 配置 OSS 客户端
  27. endpoint := "http://oss-cn-beijing-gqzl-d01-a.ops.gqzl-cloud.com/" // 替换为实际的 OSS Endpoint
  28. accessKeyID := "nT7CCrjL6pcYGej6" // 替换为实际的 AccessKeyID
  29. accessKeySecret := "OPHAxk2c2YbG530ADx6KZi2PbcWHr7" // 替换为实际的 AccessKeySecret
  30. bucketName := "xinqi" // 替换为实际的 Bucket 名称
  31. prefix := "1" // 替换为实际的前缀
  32. // 创建 OSS 客户端
  33. client, err := oss.New(endpoint, accessKeyID, accessKeySecret)
  34. if err != nil {
  35. log.Fatalf("Error creating OSS client: %v", err)
  36. }
  37. // 获取 Bucket
  38. bucket, err := client.Bucket(bucketName)
  39. if err != nil {
  40. log.Fatalf("Error getting bucket: %v", err)
  41. }
  42. // 列出指定前缀的所有对象
  43. marker := ""
  44. for {
  45. lsRes, err := bucket.ListObjects(oss.Prefix(prefix), oss.Marker(marker))
  46. if err != nil {
  47. log.Fatalf("Error listing objects: %v", err)
  48. }
  49. // 删除列出的对象
  50. var objectsToDelete []string
  51. for _, object := range lsRes.Objects {
  52. objectsToDelete = append(objectsToDelete, object.Key)
  53. }
  54. if len(objectsToDelete) > 0 {
  55. _, err = bucket.DeleteObjects(objectsToDelete, oss.DeleteObjectsQuiet(true))
  56. if err != nil {
  57. log.Fatalf("Error deleting objects: %v", err)
  58. }
  59. fmt.Printf("Deleted %d objects: %v\n", len(objectsToDelete), objectsToDelete)
  60. }
  61. // 如果没有更多对象,退出循环
  62. if !lsRes.IsTruncated {
  63. break
  64. }
  65. marker = lsRes.NextMarker
  66. }
  67. fmt.Println("Finished deleting all objects with prefix.")
  68. }