oss_test.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package test
  2. import (
  3. commonConfig "cicv-data-closedloop/aarch64/jili/common/config"
  4. "cicv-data-closedloop/common/config/c_log"
  5. "cicv-data-closedloop/common/util"
  6. "cicv-data-closedloop/tools/plugin-compile/package/config"
  7. "fmt"
  8. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  9. "log"
  10. "testing"
  11. )
  12. func init() {
  13. // 初始化日志配置
  14. c_log.InitLog(commonConfig.LogDir, commonConfig.ControlLogPrefix)
  15. // 初始化本地配置文件(第1处配置,在本地文件)
  16. commonConfig.InitLocalConfig()
  17. commonConfig.InitOssConfig()
  18. //commonConfig.InitCloudConfig()
  19. }
  20. func TestCompareSize(t *testing.T) {
  21. config.InitOss(true)
  22. // 1 下载oss文件到本地
  23. err := config.OssBucket.GetObjectToFile("1709907833304/demo.py", "D:\\demo.py")
  24. if err != nil {
  25. panic(err)
  26. }
  27. // 2 获取oss的Content-Type文件大小
  28. size, _ := util.GetOSSFileSize(config.OssBucket, "1709907833304/demo.py")
  29. fmt.Println("云上文件大小为", size)
  30. // 3 获取本地文件大小
  31. fileSize, err := util.GetFileSize("D:\\demo.py")
  32. fmt.Println("本地文件大小为", fileSize)
  33. // 4 比较大小
  34. }
  35. func TestDeleteDir(t *testing.T) {
  36. // 配置 OSS 客户端
  37. endpoint := "http://oss-cn-beijing-gqzl-d01-a.ops.gqzl-cloud.com/" // 替换为实际的 OSS Endpoint
  38. accessKeyID := "nT7CCrjL6pcYGej6" // 替换为实际的 AccessKeyID
  39. accessKeySecret := "OPHAxk2c2YbG530ADx6KZi2PbcWHr7" // 替换为实际的 AccessKeySecret
  40. bucketName := "xinqi" // 替换为实际的 Bucket 名称
  41. prefix := "1" // 替换为实际的前缀
  42. // 创建 OSS 客户端
  43. client, err := oss.New(endpoint, accessKeyID, accessKeySecret)
  44. if err != nil {
  45. log.Fatalf("Error creating OSS client: %v", err)
  46. }
  47. // 获取 Bucket
  48. bucket, err := client.Bucket(bucketName)
  49. if err != nil {
  50. log.Fatalf("Error getting bucket: %v", err)
  51. }
  52. // 列出指定前缀的所有对象
  53. marker := ""
  54. for {
  55. lsRes, err := bucket.ListObjects(oss.Prefix(prefix), oss.Marker(marker))
  56. if err != nil {
  57. log.Fatalf("Error listing objects: %v", err)
  58. }
  59. // 删除列出的对象
  60. var objectsToDelete []string
  61. for _, object := range lsRes.Objects {
  62. objectsToDelete = append(objectsToDelete, object.Key)
  63. }
  64. if len(objectsToDelete) > 0 {
  65. _, err = bucket.DeleteObjects(objectsToDelete, oss.DeleteObjectsQuiet(true))
  66. if err != nil {
  67. log.Fatalf("Error deleting objects: %v", err)
  68. }
  69. fmt.Printf("Deleted %d objects: %v\n", len(objectsToDelete), objectsToDelete)
  70. }
  71. // 如果没有更多对象,退出循环
  72. if !lsRes.IsTruncated {
  73. break
  74. }
  75. marker = lsRes.NextMarker
  76. }
  77. fmt.Println("Finished deleting all objects with prefix.")
  78. }
  79. func TestOssConnect(t *testing.T) {
  80. // 1. 上传文件到oss
  81. err := commonConfig.OssBucket.PutObjectFromFile("jili/cloud-config.yaml", "C:\\Users\\15701\\Desktop\\部署\\20250407\\cloud-config.yaml")
  82. if err != nil {
  83. panic(err)
  84. }
  85. // 2. 下载oss文件到本地
  86. //err := commonConfig.OssBucket.GetObjectToFile("test/cloud-config.yaml", "D:\\cloud-config-3.yaml")
  87. //if err != nil {
  88. // panic(err)
  89. //}
  90. //err := commonConfig.OssBucket.GetObjectToFile("oss-accesslog/dcl2025-04-01-11-00-00-0001", "D:\\dcl2025")
  91. //if err != nil {
  92. // panic(err)
  93. //}
  94. //// 2 获取oss的Content-Type文件大小
  95. //size, _ := util.GetOSSFileSize(config.OssBucket, "1709907833304/demo.py")
  96. //fmt.Println("云上文件大小为", size)
  97. //// 3 获取本地文件大小
  98. //fileSize, err := util.GetFileSize("D:\\demo.py")
  99. //fmt.Println("本地文件大小为", fileSize)
  100. }