带 minio 的 AWS s3 网关

AWS s3 gateway with minio

我对 minio s3 网关有点困惑。当我们 运行 具有 s3 网关的 minio 服务器时,我们是否需要 aws sdk?我的服务器启动了 运行,浏览器向我显示了 s3 存储桶,但我无法通过我的节点应用程序连接到服务器。它表示端口 9000 无效。是否需要在此处完成与 aws sdk 相关的任何事情或其他事情?

我已经浏览了 minio 的文档,但没有找到任何正确的方法。文档分为不同的块,它没有说明这样的事情。自 2 天以来,我一直陷入困境。如果有人能帮助我,我将不胜感激。

错误日志如下:

InvalidArgumentError: Invalid port : 9000,
    at new Client (/var/www/html/learn-otter-api/node_modules/minio/dist/main/minio.js:97:13)

错误是因为 minio 会验证每个选项的类型。

if (!(0, _helpers.isValidPort)(params.port)) {
    throw new errors.InvalidArgumentError(`Invalid port : ${params.port}`);
}
function isValidPort(port) {
  // verify if port is a number.
  if (!isNumber(port)) return false;
...

由于它根据数字类型检查端口号,如果您像我一样从 process.env 读取端口号,则需要转换为数字。

在那之后,您可能会发现自己遇到另一个类似的错误,但这次的错误消息更具解释性。

if (!(0, _helpers.isBoolean)(params.useSSL)) {
    throw new errors.InvalidArgumentError(`Invalid useSSL flag type : ${params.useSSL}, expected to be of type "boolean"`);
} // Validate region only if its set.

因此,如果您确实阅读了 process.env 中的选项,请尝试将它们转换为所需的类型。

const minioOptions = {
    "endPoint": process.env.MINIO_ENDPOINT,
    "port": 1 * process.env.MINIO_PORT,
    "useSSL": "true" === process.env.MINIO_USE_SSL,
    "accessKey": process.env.MINIO_ACCESS_KEY,
    "secretKey": process.env.MINIO_SECRET_KEY
}