0

我正在使用 minio 客户端访问 S3。我使用的 S3 存储有两个端点 - 一个(例如 EP1)可从专用网络访问,另一个(例如 EP2)可从 Internet 访问。我的应用程序创建了一个预签名 URL,用于使用 EP1 下载 S3 对象,因为它无法访问 EP2。此 URL 由不在此专用网络上的另一个应用程序使用,因此只能访问 EP2。该 URL 在被网络外部的应用程序使用时(显然)不起作用,因为该 URL 中包含 EP1。

我浏览了 minio 文档,但没有找到任何可以帮助我指定备用端点的东西。

所以我的问题是——

  1. minio有什么我错过的可以帮助我的吗?
  2. 是否有任何 S3 功能允许为其中包含 EP2 的对象生成预签名 URL?
  3. 或者如果不改变当前的网络布局就无法解决?
4

1 回答 1

0

你可以minio-js用来管理这个

这是您可以使用的示例

var Minio = require('minio')

var s3Client = new Minio.Client({
 endPoint: "EP2",
  port: 9000,
  useSSL: false,
  accessKey: "minio",
  secretKey: "minio123",
  region: "us-east-1"
})

var presignedUrl = s3Client.presignedPutObject('my-bucketname', 'my-objectname', 1000, function(e, presignedUrl) {
  if (e) return console.log(e)
  console.log(presignedUrl)
})

这根本不会联系服务器。这里唯一需要知道的是bucket所属的区域。如果你在minio中没有设置任何location,那么你可以us-east-1默认使用。

于 2019-02-26T23:29:56.670 回答