我想通过 NodeJS Express 应用程序将 Azure blob 存储与 Angular 应用程序连接起来

Posted

技术标签:

【中文标题】我想通过 NodeJS Express 应用程序将 Azure blob 存储与 Angular 应用程序连接起来【英文标题】:I Want to connect Azure blob storage with Angular app Through NodeJS Express app 【发布时间】:2021-08-01 23:44:35 【问题描述】:

我真正想做的是,我真的不想直接将文件上传从 Angular Web 应用程序到 Azure blob 存储。相反,我想先通过 express API 将上传的文件发送到 NodeJS 应用程序,然后如果我真的可以这样做的话,再从他们上传到 azure 应用程序。我不认为直接从 Angular Web 应用程序上传文件是安全的,因为它会显示我的 azure blob 存储凭据,这就是我想通过 上传文件的原因>NodeJS 应用程序。 如果有此问题的解决方案,请告诉我。 或者如果解决方案有点不同但安全,那么我仍然想知道它。 并分享我在哪里可以获得演示代码

【问题讨论】:

【参考方案1】:

试试Microsoft Azure Storage SDK for Node.js and javascript for Browsers

流程将是这样的:您的 Angular 应用程序会将数据作为数据流传递给 api。然后,API 会将其存储到您在 Azure Config 详细信息中配置的位置上的 blob。

【讨论】:

如果您已经或已经看过该类型任务的一些工作代码而不是您能否提供,我实际上并没有理解“数据作为数据流到 API”的含义,这样做你的意思是 enctype="multipart/form-data"? 是的。这是您从前端发送它的方式: UploadDocument(formData) let options = headers: new HttpHeaders( 'Authorization': 'Bearer ' + this.localStorageService.getValue('access_token') ) ;返回 this.http.post(this.apiUrl + '/api/Documents/UploadDocuments', formData, options); var stream = require('stream'); var azure = require('azure-storage'); var fileService = azure.createFileService(); var fileStream = new stream.Readable(); fileStream.push(myFileBuffer); fileStream.push(null); fileService.createFileFromStream('taskshare', 'taskdirectory', 'taskfile', fileStream, myFileBuffer.length, function(error, result, response) if (!error) // 文件上传 ); 第一个评论来自 Angular Frontend,第二个是来自 nodejs 的示例代码。

以上是关于我想通过 NodeJS Express 应用程序将 Azure blob 存储与 Angular 应用程序连接起来的主要内容,如果未能解决你的问题,请参考以下文章

如何将 React + NodeJS Express 应用程序部署到 AWS?

使用Socket.IO以及Express和NodeJS导出

NodeJS、Express 和多事的 Socket.io

使用 Nodejs、Express、Mongoose 和 React 将图像上传到 MongoDB

通过 NodeJS 和 Express 将 MySQL 查询的所有内容检索到 Jade 模板引擎

如何将 Express NodeJS 项目部署到 Centos 服务器?