Nodejs上传base64图像到azure blob存储结果为“ResourceNotFound”错误
这是发布请求JSON
:
{ "name":"images.jpg", "file":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxQTEhIUEhIUFBUV…K9rk8hCAEkjFMUYiEAI+nHIpsQh0AkisDYRTOiCAbWVtgCtI6IlkHh7LDTQXLH0EIQBj//2Q==" }
这里是我的节点控制器在请求/upload
路线下,我使用azure存储的 createBlockBlobFromText()
。
var azure = require('azure-storage'); var blobSvc = azure.createBlobService('myblob.blob.core.windows.net/mycontainer', THE_KEY); controllers.upload = function (req, res, next){ var startDate = new Date(); var expiryDate = new Date(startDate); var sharedAccessPolicy = { AccessPolicy: { Permissions: azure.BlobUtilities.SharedAccessPermissions.WRITE, Start: startDate, Expiry: expiryDate } }; var sharedAccessSignatureToken = blobSvc.generateSharedAccessSignature('resources', req.body.file, sharedAccessPolicy); var sharedBlobService = azure.createBlobServiceWithSas(blobSvc.host.primaryHost + '/' + 'mycontainer' + '?' + sharedAccessSignatureToken); sharedBlobService.createBlockBlobFromText('mycontainer', req.body.name, req.body.file, function(error, result, response) { if (error) { res.send(error); return; } res.send(result); }); }
但是我得到这个错误。
{ "code": "ResourceNotFound", "statusCode": 404, "requestId": "bffa6099-0001-000b-53f9-80d18a000000" }
需要的变化夫妇:
- 到期date应该大于开始date。
- 共享访问签名应该使用相同的容器名称。
- 共享访问签名应该以文件名传递,而不是文件内容。
这些更改后,代码将类似于此:
var sharedAccessSignatureToken = blobSvc.generateSharedAccessSignature('mycontainer', req.body.name, sharedAccessPolicy); var sharedBlobService = azure.createBlobServiceWithSas(blobSvc.host, sharedAccessSignatureToken); sharedBlobService.createBlockBlobFromText('mycontainer', req.body.name, req.body.file, function(error, result, response) { if (error) { res.send(error); return; } res.send(result); });
- 在Node.js上收到“更改”+“更改”事件后,Azure Workerangular色重新启动
- 设置根path以在Azure上提供index.html(IIS Web服务器)
- 有没有办法在package.json中检测需要编译的模块?
- node.js http和bingsearchapi
- Azure移动服务导出模块和表格对象
- 尝试通过节点createBlockBlobFromStream()将Blob上载到Azure存储时发生“RequestBodyTooLarge”
- 使用Azure进行存储的Web应用程序
- Azure Blob存储哈希不匹配(完整性检查失败)
- Azure应用程序服务将主体大小限制为〜64kB