S3 альтернативные конечные точки для назначенных операций
Я использую клиент Minio для доступа к S3. У хранилища S3, которое я использую, есть две конечные точки - одна (скажем, EP1), которая доступна из частной сети, а другая (скажем, EP2) из Интернета. Мое приложение создает заданный URL-адрес для загрузки объекта S3 с использованием EP1, поскольку оно не может получить доступ к EP2. Этот URL используется другим приложением, которое не находится в этой частной сети и, следовательно, имеет доступ только к EP2. Этот URL (очевидно) не работает, когда используется приложением вне сети, так как в этом URL есть EP1.
Я просмотрел документацию minio, но не нашел ничего, что помогло бы мне указать альтернативные конечные точки.
Итак, мой вопрос -
- Есть ли что-то, что я пропустил из minio, что может мне помочь?
- Есть ли какая-либо особенность S3, которая позволяет генерировать предопределенный URL для объекта с EP2 в нем?
- Или это не решаемо без изменения текущей схемы сети?
1 ответ
Ты можешь использовать 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)
})
Это не будет связываться с сервером вообще. Единственное, что вам нужно, это знать регион, к которому относится ведро. Если вы не установили какой-либо location
в Minio, то вы можете использовать us-east-1
по умолчанию.