github.com/qiniu/go-sdk/v7@v7.27.0/storagev2/uploader/doc.go (about)

     1  // Package uploader 提供七牛云对象存储的上传管理。
     2  //
     3  // [UploadManager] 是推荐的上传入口,根据文件大小自动选择表单上传或分片上传:
     4  //
     5  //   - 小于 MultiPartsThreshold(默认 4MB):使用表单上传
     6  //   - 大于等于该阈值:使用分片上传(支持 v1 和 v2 两种协议)
     7  //
     8  // # 基本用法
     9  //
    10  //	uploadManager := uploader.NewUploadManager(&uploader.UploadManagerOptions{
    11  //	    Options: http_client.Options{Credentials: cred},
    12  //	})
    13  //
    14  //	objectName := "my-file.txt"
    15  //	err := uploadManager.UploadFile(ctx, "/path/to/file", &uploader.ObjectOptions{
    16  //	    BucketName: "my-bucket",
    17  //	    ObjectName: &objectName,
    18  //	    UpToken:    uptoken.NewSigner(putPolicy, cred),
    19  //	}, nil)
    20  //
    21  // # 上传 Reader
    22  //
    23  //	err := uploadManager.UploadReader(ctx, reader, &uploader.ObjectOptions{
    24  //	    BucketName: "my-bucket",
    25  //	    ObjectName: &objectName,
    26  //	    UpToken:    uptoken.NewSigner(putPolicy, cred),
    27  //	}, nil)
    28  //
    29  // # 上传目录
    30  //
    31  //	err := uploadManager.UploadDirectory(ctx, "/path/to/dir", &uploader.DirectoryOptions{
    32  //	    BucketName: "my-bucket",
    33  //	    UpToken:    uptoken.NewSigner(putPolicy, cred),
    34  //	})
    35  //
    36  // # 上传进度
    37  //
    38  // 通过 [ObjectOptions.OnUploadingProgress] 回调获取上传进度:
    39  //
    40  //	opts := &uploader.ObjectOptions{
    41  //	    OnUploadingProgress: func(progress *uploader.UploadingProgress) {
    42  //	        fmt.Printf("%d / %d\n", progress.Uploaded, progress.TotalSize)
    43  //	    },
    44  //	}
    45  //
    46  // # 底层接口
    47  //
    48  // 如需精细控制,可直接使用:
    49  //
    50  //   - [NewFormUploader]: 表单上传
    51  //   - [NewMultiPartsUploaderV1] / [NewMultiPartsUploaderV2]: 分片上传
    52  package uploader