github.com/qiniu/go-sdk/v7@v7.27.0/storagev2/objects/doc.go (about) 1 // Package objects 提供七牛云对象存储的对象管理功能。 2 // 3 // [ObjectsManager] 提供流式 API 来管理存储空间中的对象,支持查询、复制、 4 // 移动、删除、归档恢复、生命周期管理等操作,以及批量操作。 5 // 6 // # 创建管理器 7 // 8 // objectsManager := objects.NewObjectsManager(&objects.ObjectsManagerOptions{ 9 // Options: http_client.Options{Credentials: cred}, 10 // }) 11 // 12 // # 链式 API 13 // 14 // 通过 Bucket → Object 链式调用构建操作: 15 // 16 // bucket := objectsManager.Bucket("my-bucket") 17 // obj := bucket.Object("my-file.txt") 18 // 19 // // 查询对象信息 20 // info, err := obj.Stat().Call(ctx) 21 // 22 // // 复制对象 23 // err := obj.CopyTo("target-bucket", "new-name.txt").Call(ctx) 24 // 25 // // 移动对象 26 // err := obj.MoveTo("target-bucket", "new-name.txt").Call(ctx) 27 // 28 // // 删除对象 29 // err := obj.Delete().Call(ctx) 30 // 31 // // 修改存储类型 32 // err := obj.SetStorageClass(objects.IAStorageClass).Call(ctx) 33 // 34 // // 归档恢复 35 // err := obj.Restore(7).Call(ctx) 36 // 37 // # 列举对象 38 // 39 // lister := bucket.List(ctx, &objects.ListObjectsOptions{Prefix: "images/"}) 40 // defer lister.Close() 41 // var details objects.ObjectDetails 42 // for lister.Next(&details) { 43 // fmt.Println(details.Name, details.Size) 44 // } 45 // if err := lister.Error(); err != nil { 46 // // 处理错误 47 // } 48 // 49 // # 批量操作 50 // 51 // 将多个 [Operation] 收集后批量执行: 52 // 53 // ops := make([]objects.Operation, 0) 54 // ops = append(ops, bucket.Object("a.txt").Delete()) 55 // ops = append(ops, bucket.Object("b.txt").Delete()) 56 // err := objectsManager.Batch(ctx, ops, &objects.BatchOptions{}) 57 // 58 // # 目录操作 59 // 60 // 通过 [Directory] 批量操作同前缀的对象: 61 // 62 // dir := bucket.Directory("logs/", "/") 63 // err := dir.Delete(ctx) 64 // err := dir.CopyTo(ctx, "backup-bucket", "logs-backup/") 65 // 66 // # 存储类型 67 // 68 // - [StandardStorageClass]: 标准存储 69 // - [IAStorageClass]: 低频存储 70 // - [ArchiveStorageClass]: 归档存储 71 // - [DeepArchiveStorageClass]: 深度归档存储 72 // - [ArchiveIRStorageClass]: 归档直读存储 73 package objects