Я занимаюсь разработкой файлового менеджера и хочу поддерживать загрузку и загрузку в aws s3.
Если я нажму кнопку загрузки, сервер EC2 загрузит файл, который я запрашиваю из AWS S3 (я использую aws-sdk модуль). Затем сервер EC2 создает ссылку для загрузки с помощью модуля fs и начинает загрузку файла.
Но, если я загружаю файл '. Pptx' , файл долженбыть отремонтированным. и иногда он не может быть восстановлен на 100%.
Как я могу загрузить файл '.pptx' без повреждений ??
Пожалуйста, дайте мне знать с некоторым кодом или примерами.
Хорошего дня, спасибо.
Этот сервер EC2 является ОС Linux, работает под управлением Mongo DB, Node.js / Express. Сервер EC2 загружает файлы из AWS S3 с помощью модуля aws-sdk / s3. Клиент загружает файлы с сервера EC2 с помощью модуля fs.
Часть маршрутов / File / File.js
router.post('/download', function(req, res, next) {
// This variable includes file name + extension
// Ex. example.pptx
const FileName = req.body.fileName;
// A Path of Downloaded file in EC2 server
const FilePath = "files/download/";
const FileId = req.body.fileId;
const RevisionId = req.body.revisionId;
const BucketName = Config.Bucket;
const params = {
Bucket: BucketName + "/" + FileId,
Key: RevisionId
};
let file = fs.createWriteStream('public/' + FilePath + FileName);
res.send(s3.getObject(params).createReadStream().pipe(file));
});
Часть public / javascripts / File / File.js
function DownloadFile(DownloadHrefId, FileName, FileId, RevisionId) {
$.ajax({
url: "/File/download",
type: "post",
async: false,
typeData: "json",
data: {fileName: FileName, fileId: FileId, revisionId: RevisionId},
success: function (Result) {
if (Result) {
// IE Browser
if (GetBrowserName() === "ie") {
let win = window.open(Result.path.toString().substring(6, Result.path.length), '_blank');
win.focus();
}
// the other Browser
else {
let DownloadHref = $("#" + DownloadHrefId);
DownloadHref.attr("href", Result.path.toString().substring(6, Result.path.length));
setTimeout(function () {
DownloadHref.get(0).click();
},300);
}
}
else {
//console.log("Download Result Error!");
}
}
})
}