Я использую expressjs и узел для своего бэкэнда, и мне нужно разрешить пользователям внешнего интерфейса загружать файл. Для этого я думал об использовании хранилища объектов, такого как Minio и s3, и использовал его для создания объекта и отправки URL-адреса файла во внешний интерфейс, и даже я получил код, работающий для этого очень простого и приятного:
minioClient.makeBucket(bucketName, 'us-east-1', function(err) {
if (err) return console.log(err)
console.log('Bucket created successfully in "us-east-1".')
var metaData = {
'Content-Type': 'application/octet-stream',
'X-Amz-Meta-Testing': 1234,
'example': 5678
}
// Using fPutObject API upload your file to the bucket europetrip.
minioClient.fPutObject(bucketName, fileName, filePath, metaData, function(err, etag) {
if (err) return console.log(err)
console.log('File uploaded successfully.')
// expires in a day.
minioClient.presignedGetObject(bucketName, fileName, 24*60*60, function(err, presignedUrl) {
if (err) return console.log(err)
console.log(presignedUrl)
})
});
});
Но из-за ограничений инфраструктуры единственный способ, который у меня есть, - это создать zip-файл и отправить zip-файл в браузер пользователя, а не хранить его. Но я не уверен, что это выполнимо в expressjs вообще? Кто-нибудь может мне помочь с этим? Есть ли простая библиотека, которую я могу использовать, чтобы отправить файл zip клиенту?