当前位置: 首页 > 知识库问答 >
问题:

api - MinIO 如何对上传文件进度监控?

冯亮
2024-01-15

minio如何获取上传文件进度?

使用putObject,看文档并没有关于获取上传进度相关参数

共有2个答案

龙智
2024-01-15

官方SDK里面使用示例,以下为mino-py为例:
https://github.com/minio/minio-py/blob/master/examples/progress.py

在上传的函数里面 有个progress: ProgressType | None = None, 参数


在Java SDK中 https://github.com/minio/minio-java/blob/master/examples/PutObjectProgressBar.java

林俊晖
2024-01-15

在 MinIO 中,要监控上传文件的进度,你可以使用 MinIO 的 SDK 或 MinIO 的命令行工具 mc。以下是使用这两种工具的详细步骤:

使用 MinIO SDK

MinIO 提供了多种语言的 SDK,包括 Go、Java、Python、.NET 等。使用这些 SDK,你可以在上传文件时获取上传进度。以下是一个使用 Go SDK 的示例:

package mainimport ( "context" "log" "time" "github.com/minio/minio-go/v7" "github.com/minio/minio-go/v7/pkg/encrypt")func main() { // 初始化 minio client 对象. minioClient, err := minio.New("your-minio-server.example.com:9000", &minio.Options{ // 设置你的 access key 和 secret key. AccessKeyID: "YOUR-ACCESSKEYID", SecretAccessKey: "YOUR-SECRETACCESSKEY", Insecure: true, }) if err != nil { log.Fatalf("Error initializing minio client: %v", err) } // 创建一个加密对象,这里我们使用 SSE-S3。 encryptOpts := encrypt.DefaultEncryptionOptions{ Key: []byte("my-secret-key123"), // 替换为你自己的密钥。 } // 创建一个 put object options 对象,并设置 encryption options。 putObjectOpts := minio.PutObjectOptions{ Encryption: &encryptOpts, } // 上传一个文件。你可以替换 "my-bucketname", "my-objectname", 和 "my-filename.txt" 为你自己的值。 file, err := os.Open("my-filename.txt") // 替换为你自己的文件路径。 if err != nil { log.Fatalf("Error opening file: %v", err) } defer file.Close() // 上传文件,并打印上传进度。这里的上传进度是通过 io.ReaderAt 和 progress.NewReader 提供的。 progress := progress.NewReader(file) // 创建一个带有上传进度功能的 reader。 if _, err := minioClient.PutObject(context.Background(), "my-bucketname", "my-objectname", progress, putObjectOpts); err != nil { log.Fatalf("Error uploading object: %v", err) }}

在这个示例中,我们使用了 progress.NewReader 来创建一个带有上传进度功能的 reader。这样,在上传文件时,我们可以实时地获取上传进度。

使用 mc 命令行工具

MinIO 的命令行工具 mc 不直接提供上传进度监控的功能。但是,你可以结合使用 mc 和其他的工具来实现这个功能。例如,你可以使用 mc 上传文件,并同时使用其他的工具(如 curlwget)来监控上传进度。

 类似资料:
  • getFileStream光将文件转换为字符串就需要特别长的时间,再到切片,而且上传上去的文件比原来大了,再下载下来也不对

  • 使用APP拍摄视频,然后上传至minio,有的视频文件 contentType为 video/mp4,而有的contentType 为 application/octet-stream,这是为什么呢? video/mp4类型的在浏览器上可以直接预览,而application/octet-stream 类型的在部分浏览器上显示格式不支持 我使用sm3设置了http 返回的header中content

  • 问题内容: 看来我还没有清楚地传达出我的问题。我需要发送一个文件(使用AJAX),并且需要使用Nginx HttpUploadProgressModule 获取文件的上传进度。我需要一个很好的解决方案。我已经尝试过使用jquery.uploadprogress插件,但是我发现自己不得不重写其中的大部分内容,以使其在所有浏览器中都能正常工作并使用AJAX发送文件。 我所需要的只是执行此操作的代码,它

  • 本文向大家介绍FormData+Ajax实现上传进度监控,包括了FormData+Ajax实现上传进度监控的使用技巧和注意事项,需要的朋友参考一下 什么是FormData? FormData对象可以组装一组用 XMLHttpRequest发送请求的键/值对。它可以更灵活方便的发送表单数据,因为可以独立于表单使用。如果你把表单的编码类型设置为multipart/form-data ,则通过FormD

  • 问题内容: 当用户将文件上传到我的Web应用程序时,我想显示比gif动画更有意义的内容。我有什么可能性? 编辑:我正在使用.Net,但我不介意是否有人向我展示平台不可知的版本。 问题答案: 以下是一些常用JavaScript工具包的几种版本。 Mootools- http: //digitarald.de/project/fancyupload/ Extjs- http: //extjs.com/

  • 问题内容: 我想按使用Google Drive API上传文件的百分比显示进度。 我的想法之前已经成功上传了文件,但是看不到上传进度。 我已经看到并添加了此FileUploadProgressListener,但仅显示0.0(进度开始)和1.0(进度完成时)。我无法及时获得进度的百分比。 如何使其运作? 这是我的上传代码: 问题答案: 要获得进度,您必须使用(而不是)和或必须是的倍数的任何值,否则