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