从自定义node.js API中检索Azure Blob
我想从Microsoft Azure blob存储容器中检索图像的二进制数据。
我已经使用AZSCloudBlobContainer上的以下function,从iOS应用程序成功地将图像上传到Azure上的存储容器。
blockBlob.uploadFromData(imageData, completionHandler:
我也可以使用AZSCloudBlob上的以下function直接将其成功下载到iOS应用程序。
blockBlob.downloadToDataWithCompletionHandler({(error: NSError?, data: NSData?)
我遇到的问题是,我希望能够从node.js服务器端脚本检索图像,而不是直接从应用程序。 其中,我已经尝试了下面的代码…
var containerName = 'containerName'; var blobService = storage.createBlobService(accountName, accountKey); var blobName = 'blobname'; var fs = require('fs'); var stream = fs.createWriteStream('output.txt'); blobService.getBlobToStream(containerName, blobName, stream, function (error, result, response2) { response.json(result); });
该响应检索blob信息,但我不知道如何获得图像的实际二进制数据?
({ blobType = BlockBlob; container = containername; contentLength = 14593; contentSettings = { contentType = "application/octet-stream"; }; etag = "\"0x8D********\""; lastModified = "Mon, 05 Sep 2016 18:57:41 GMT"; lease = { state = available; status = unlocked; }; metadata = { }; name = "blobname"; requestId = "ce3e7************"; serverEncrypted = false; })
我也尝试了很多其他途径,但是我对node.js完全陌生,花费了太多的时间来解决这个问题,任何方向都将非常感谢,谢谢。
由于Node.js中的Azure移动应用基于Expressjs ,其response
中间件是一种可写的stream,您可以利用getBlobToStream()
函数直接将内容stream发送到客户端。 例如
module.exports = { "get": function (req, res, next) { var azure = require('azure-storage'); var blobsrv = azure.createBlobService( '<storage_account>', '<storage_key>' ) blobsrv.getBlobToStream('<container>', '<blob>', res, function (error, result) {}) } }
您可以通过浏览器通过api http://<your_mobile_app_name>.azurewebsites.net/api/<api_name>
的URL直接浏览自定义API来testingfunction。
- “实施我。 未知的标准input文件types!“与flickrapi错误
- 在azure node.js工作者angular色上定制性能计数器
- Node.js中的ECONNRESET Azure中的RabbitMQ使用者
- Express应用程序在azure色上投掷500个
- 测量Websocket性能的工具
- 护照 – azure色广告,令牌validation
- Azure“Web应用程序”服务:从package.json自动安装npm模块
- 使用nodejs将数据从Rfid rc522发送到azureiot集线器
- 如何将React.js / React Native Apps连接到Azure App Service的单个后端实例?