我对minio s3网关有点困惑。当我们使用s3网关运行minio服务器时,是否需要aws-sdk?我的服务器开始运行,浏览器向我显示s3存储桶,但我无法通过节点应用程序连接到服务器。它声明端口9000无效。这与aws-sdk有关吗?或者这里需要做其他事情吗?
我已经浏览了米尼奥的文件,但没有找到任何合适的方式。文档被分为不同的块,它没有说明任何类似的内容。我已经被困了两天了。如果有人能在这方面帮助我,我将不胜感激。
错误日志如下:
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
}