Minio:在浏览器中渲染图像

问题描述

我正在将svg文件上传到本地minio服务器(在docker中运行)。

const uploadedFile = await client.putObject(bucketName,filename,readStream);

然后我生成一个公共网址,例如http://localhost:9000/link-identifiers/example.svg,我可以从那里公开下载文件

如果我想像<img src={picUrl}>一样在浏览器中显示它,则图像根本无法渲染。

enter image description here

我在浏览器中获得了这些响应标题

HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Length: 124775
Content-Security-Policy: block-all-mixed-content
Content-Type: application/octet-stream
ETag: "109be6a37b9091e50651b3cbbe6bed3a"
Last-Modified: Wed,02 Sep 2020 06:44:28 GMT
Server: MinIO/RELEASE.2020-08-07T01-23-07Z
vary: Origin
X-Amz-Request-Id: 1630E4E87DF71408
X-Xss-Protection: 1; mode=block
Date: Wed,02 Sep 2020 06:52:34 GMT

为使图像渲染,我需要对minio服务器进行任何其他配置吗? 如果我能够下载它们并且它们很好(在查看它们时),那么它们也不能在浏览器中呈现吗?

当前使用以下命令将存储桶的权限设置为public

mc policy set public myminio/link-identifiers

解决方法

putObject函数接受一个可选的metadata参数。

  const metadata = {
  'Content-type': 'image',};

将其作为参数传递给函数,以便能够渲染图像。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...