Tag: azure storage blobs

如何从Azure容器获取文件夹列表?

我想要在nodejs中的所有文件夹和文件在一个azure色的容器中 我正在使用azure存储库获取blob,但无法find任何示例来列出容器下的所有文件夹。 我在auzure中倾销(出口)我的anaylitics数据到存储容器。 现在我试图阅读这些文件 我的存储结构像 ios-analytics-full/ios_06cd82e4db0845b9bef73c5b22bea2fa/Event/2016-09-29/18/270b58c-04d7-4e5d-a503-cdce24a3940c_20160929_184723.blob 我想读取为每一天创build的所有文件夹和这些文件夹下的文件 var containerName = "assist-ios-analytics-full"; blobService.listBlobsSegmented(containerName, null, {maxResults : 10}, function(err, result) { if (err) { console.log("Couldn't list blobs for container %s", containerName); console.error(err); } else { console.log('Successfully listed blobs for container %s', containerName); console.log(result.entries); console.log(result.continuationToken); res.json(result); } }); 最新的文件夹将是今天的date ios-analytics-full/ios_06cd82e4db0845b9bef73c5b22bea2fa/Event/2017-05-31/18/270b58c-04d7-4e5d-a503-cdce24a3940c_20160929_184723.blob

如何使用azure-storage-node按修改date查询Azure Blob

我正在使用Azure Blob存储节点库: https : //github.com/Azure/azure-storage-node 我已经提到这个文档: https : //github.com/Azure/azure-content/blob/master/articles/storage-nodejs-how-to-use-blob-storage.md 我可以做大多数的blob操作,但是我想列出一个星期内没有被修改过的blob。 该文件是相当轻,但似乎有一个访问条件,我可以使用,我只是不确定的语法。 这是我最好的猜测: var weekOld = new Date(); weekOld.setDate(weekOld.getDate() – 7); var options = {accessConditions:{}}; options['accessConditions'][azure.BlobUtilities.AccessConditions.DATE_UNMODIFIED_SINCE] = weekOld; blobSvc.listBlobsSegmentedWithPrefix('mycontainer', 'myprefix', null /*token*/, options, function(error, result, response){ if(!error){ result.entries.forEach(function(val, index, array){ console.log(val.name); console.log(val.properties); }); } console.log(response); }); 这将使用正确的前缀拉入所有的斑点,但忽略修改date。 我正在猜测传递accessConditions与我的查询语法,所以这并不奇怪,这是行不通的。 任何帮助深表感谢。

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 […]

Azure存储NodeJS修改默认超时设置

我想知道是否有可能为我更改Azure存储BlobService的默认超时设置。 从文档我可以看到,默认设置是: 调用blob,获取页面范围或获取阻止列表允许每兆字节2分钟完成。 如果一个操作平均每兆字节花费的时间超过2分钟,则会超时。 调用写一个blob,写一个块,或写一个页面,每兆字节允许10分钟完成。 如果平均每兆字节操作超过10分钟,则超时。 通过源代码看,我看到BlobService.getServiceProperties和setServiceProperties与这两个参数列出: @param {int} [options.timeoutIntervalInMs]用于请求的服务器超时间隔(以毫秒为单位)。 @param {int} [options.maximumExecutionTimeInMs]执行此请求时使用的所有潜在重试的最大执行时间(以毫秒为单位)。 最大执行时间间隔从客户端开始构build请求时开始。 在执行请求时,在执行重试之前,会间歇性地检查最大执行时间。 这两个参数是否等于上面的项目? 现在,当我尝试使用下面的代码使用getServiceProperties时,除了日志logging,度量和Cors数据之外,我没有给出任何信息。 这是Github页面上说的 blobSvc.getServiceProperties(function(error, result, response) { if (!error) { console.log('Result: ', result); console.log('Response: ', response); } else { console.log(error); } }); Result: { Logging: { Version: '1.0', Delete: false, Read: false, Write: false, RetentionPolicy: { Enabled: false } }, […]

成功将base64映像保存到Azure Blob存储,但blob映像始终损坏/小的白色框

我有一个图像转换为base64我想上传到我的azure色blob存储使用createBlockBlobFromText。 self.blobServer.createBlockBlobFromText(containerName, fileName, baseStrChars, { contentSettings: { contentType: 'image/jpeg' } }, function(error, result, response) { if (error) { console.log(error); } console.log("result", result); console.log("response", response); }); 我新的JPEG图像出现在BLOB存储容器,但是当我去blob图像的URL我总是得到这个 。 我的容器的访问策略设置为容器,我粘贴我的base64string到base64图像转换器,并出现正确的图像。 这个问题似乎是我创buildblob而不是base64string的方式。 我感到困惑,为什么整个stream程似乎工作,但仍然是图像被打破,当我去的url。 有任何想法吗 ?

上传,然后下载一个大的文件,与Windows Azure,blob存储和nodejs

我试图做一个网站上的Windows Azure,它允许用户通过网页提交一个表单,用POST方法发送表单的文件。 我正在使用mac操作系统的最新版本,在mac book air 2013上。 服务器接收到这个表单,将这个文件stream式传输到一个blob,然后把用户redirect到一个新的网页,并且有一个到blob的链接(这是公开的)。 这样,用户可以稍后获得他的文件。 我所做的似乎很小的文件(一个图像〜35KB,一个Dmg文件〜950MB)正常工作。 但是当涉及到更大的文件(〜20MB)时,服务器注意到上传过程中出现了错误(在大约1分20秒或2分40秒之后,不记得)。 客户端(谷歌浏览器)似乎并不知情,并继续上传文件。 但是当它结束时,它显示一个503错误。 我尝试了2个大约20MB的dmg文件,得到了相同的结果(问题1)。 然后用一个〜57MB的dmg文件(谷歌浏览器安装程序)和几个〜700MB的文件(使用〜30MB / s的上传互联网访问),服务器似乎没有任何问题,也没有客户端。 上传过程直到结束,我得到存储在blob存储中的文件的链接。 但是当我下载它的时候,文件比预期的要大一些(一个57MB的文件多了4096个字节,大约700MB的文件多了40KB)。 我尝试了几种types的文件:能够重放video(尽pipe有一些奇怪的东西)是足够好的,但是当我尝试它时,dmg却无法挂载(我猜是因为完整性检查很好地工作)(问题2 ) 我想知道什么数据已经被添加到我的文件。 所以我创build了两个与我的〜57MB dmg文件大小相同的文件。 第一个是满了字符0,秒交替字符0和1.当我上传和下载他们,他们没有原始大小,但他们仍然只包含000000 ….或010101010 ….虽然,真的有更多的0000 …和更多的0101010 ….比原来的版本(但只有0和01)。 所以我去了blob存储pipe理器页面,我看到每个文件的大小似乎比我的电脑上小(例如:54.33MB,而不是〜57MB)。 可能是因为不同的文件系统,…? 让我们总结一下问题2:我上传了一个大文件,看起来比我的笔记本上的小,然后我下载了它,实际上比原来的版本要大。 奇怪,不是吗? 有任何想法吗 ? 谢谢你的帮助 ! 这是我的server.js文件: var http = require('http'); var url = require("url"); var express = require('express'); var querystring = require('querystring'); var fs […]

定义Azure blobstream的大小限制,即截断文件

我想知道是否有一些function可用来指定azure blobstream的最大长度,以便只有指定的大小上传和rest被丢弃,即文件被截断。 题 我的需要是为文件指定最大大小,例如50或60 Mb,如果文件大小最大,我希望文件被截断。 (文件可以是大型日志文件或video文件) 我有以下代码工作(我正在使用多方的forms和azure色的存储节点包azure) // form.on is from multiparty form.on('part', function(part) { var streamLength = 25 * 1024 * 1024; // part.byteCount if (part.filename) { form.on('part', function(part) { if (part.filename) { blobService.createBlockBlobFromStream(container, blobName, part, streamLength, function(err, blobContent, blob) { if (err) { // do sth with error } return blobContent; }); } […]

使用Azure node.js SDK的createContainerIfNotExist方法进行AuthenticationFailed

我正尝试使用Azure node.js sdk连接到博客存储服务。 这就是我所说的: var blobService = azure.createBlobService(nconf.get("BlobStorage.account"), nconf.get("BlobStorage.key")); blobService.createContainerIfNotExist( "test1" , {publicAccessLevel : 'blob'} , function(error){ if(error){ console.log(error); } }); 这是我得到的错误: code: 'AuthenticationFailed', message: 'Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.\nRequestId:7ff326e7-2bc6-47ad-898e-2235dc26c03d\nTime:2013-03-15T19:45:25.0167404Z', authenticationerrordetail: 'The MAC signature found in the HTTP request \'xg3cY11YCPo3mYPxDF5UV7cTPOErleERogcozwGVm6s=\' is […]

Node azure blobService.generateSharedAccessSignature()返回一个不正确的标记

我试图用Azure节点SDK生成共享访问签名,但返回的令牌不工作/缺less一些参数。 我创build令牌: app.get('/node-api/get-azure-token', (req, res, next) => { var blobService = azure.createBlobService(myStorageAccount, myAccessKey); var container = 'my-azure-container-name'; var startDate = new Date(); var expiryDate = new Date(startDate); expiryDate.setMinutes(startDate.getMinutes() + 10); startDate.setMinutes(startDate.getMinutes() – 5); var sharedAccessPolicy = { AccessPolicy: { ServiceVersion: '2016-05-31', Permissions: azure.BlobUtilities.SharedAccessPermissions.READ + azure.BlobUtilities.SharedAccessPermissions.WRITE + azure.BlobUtilities.SharedAccessPermissions.DELETE + azure.BlobUtilities.SharedAccessPermissions.LIST + azure.BlobUtilities.SharedAccessPermissions.ADD + azure.BlobUtilities.SharedAccessPermissions.CREATE, Start: startDate, […]

如何从Azure Blob存储中查看图像,而不是下载它?

好的,所以我使用Node.js和Azure Blob存储来处理一些file upload。 当一个人上传图片时,我想向他们展示图片的缩略图。 上传工作很好,我把它存储在我的blob。 我用这个很好的链接( 在Azure SDK中为Node.js生成Azure共享访问签名和BlobService.getBlobURL() )来帮助我创build此代码来创build共享访问临时URL。 process.env['AZURE_STORAGE_ACCOUNT'] = "[MY_ACCOUNT_NAME]"; process.env['AZURE_STORAGE_ACCESS_KEY'] = "[MY_ACCESS_KEY]"; var azure = require('azure'); var blobs = azure.createBlobService(); var tempUrl = blobs.getBlobUrl('[CONTAINER_NAME]', "[BLOB_NAME]", { AccessPolicy: { Start: Date.now(), Expiry: azure.date.minutesFromNow(60), Permissions: azure.Constants.BlobConstants.SharedAccessPermissions.READ }}); 这创build一个url就好了。 例如: https:// [ACCOUNT_NAME] .blob.core.windows.net:443 / [CONTAINER_NAME] / [BLOB_NAME]?st = 2013-12-13T17%3A33%3A40Z&se = 2013-12-13T18%3A33% 3A40Z&SR = b& SP […]