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