带有 minio 的 AWS s3 网关

问题描述 投票:0回答:2

我对 minio s3 网关有点困惑。当我们使用 s3 网关运行 minio 服务器时,是否需要 aws sdk?我的服务器开始运行,浏览器向我显示 s3 存储桶,但我无法通过我的节点应用程序连接到服务器。提示9000端口无效。这是与 aws sdk 相关的事情还是需要在这里完成其他事情?

我已经浏览了minio的文档,但没有找到任何正确的方法。这些文档分为不同的块,并且它没有说明类似的内容。两天以来我一直陷入这个困境。如果有人能在这方面帮助我,我将非常感激。

错误日志如下:

InvalidArgumentError: Invalid port : 9000,
    at new Client (/var/www/html/learn-otter-api/node_modules/minio/dist/main/minio.js:97:13)
node.js amazon-s3 aws-sdk minio
2个回答
3
投票

错误来自于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
}

0
投票

登录 Minio 并创建新的访问密钥和秘密密钥,然后在 .env 文件中更改它,这对我有用

© www.soinside.com 2019 - 2024. All rights reserved.