首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NodeJS (CompoundJS)将blob上载到windows容器

使用NodeJS (CompoundJS)将blob上载到windows容器
EN

Stack Overflow用户
提问于 2014-01-20 06:30:51
回答 2查看 1.1K关注 0票数 0

我正在为我的应用程序使用compoundjs,现在我试图实现一个脚本,该脚本可以从CompoundJS将图像上传到azure blob。

我搜索了web,发现有一个模块azure (npm )是在此链接中指定的。

下面是我在应用程序中使用的代码片段

代码语言:javascript
复制
var azure = require("azure");
var blobService = azure.createBlobService();
blobService.createContainerIfNotExists('container_name', {publicAccessLevel : 'blob'}, function(error){
    if(!error){
        // Container exists and is public
        console.log("Container Exists");
    }
});

我知道我应该在哪里配置ACCESS KEY以使其工作,但不确定在哪里工作。

请建议一下。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-20 06:57:33

您需要提供如下所示的帐户名称/密钥:

代码语言:javascript
复制
var blobService = azure.createBlobService('accountname', 'accountkey');

您可以在这里查看源代码:https://github.com/WindowsAzure/azure-sdk-for-node/blob/master/lib/azure.js

票数 1
EN

Stack Overflow用户

发布于 2014-01-20 16:38:25

提供存储访问凭据的方法有多种。我使用环境变量来设置帐户名和密钥。

下面是如何使用bash设置环境变量:

代码语言:javascript
复制
echo Exporting Azure Storage variables ...

export AZURE_STORAGE_ACCOUNT='YOUR_ACCOUNT_NAME'

export AZURE_STORAGE_ACCESS_KEY='YOUR_ACCESS_KEY'

echo Done exporting Azure Storage variables

下面是一个示例node.js脚本,我使用该脚本从存储为Azure的现有图像生成缩略图,使用imagemagick:

代码语言:javascript
复制
var azure = require('azure');
var im = require('imagemagick');
var fs = require('fs');
var rt = require('runtimer');
//Blobservice init

var blobService = azure.createBlobService();

var convertPath = '/usr/bin/convert';

var identifyPath = '/usr/bin/identify';

global.once = false;


var blobs = blobService.listBlobs("screenshots", function (error, blobs) {

    if (error) {
        console.log(error);
    }

    if (!error) {
        blobs.forEach(function (item) {

            if (item.name) {

                if (item.name.length == 59) {

                    //Create the name for the thum                  
                    var thumb = item.name.substring(0, item.name.indexOf('_')) + '_thumb.png';
                    if (!global.once) {
                        console.log(global.once);
                        var info = blobService.getBlobToFile("YOUR CONTAINER", item.name, item.name,
                            function (error, blockBlob, response) {
                                im.resize({
                                    srcPath: item.name,
                                    dstPath: thumb,
                                    width: 100,
                                    height: 200
                                },
                                    function (err, sdout, stderr) {
                                        if (err) throw err;
                                        console.log("resized");
                                        //Delete the downloaded BIG one
                                        fs.unlinkSync(item.name);


                                        //Upload the thumbnail
                                        blobService.putBlockBlobFromFile("YOUR CONTAINER", thumb, thumb,
                                                         function (error, blockBlob, response) {

                                                             if (!error) {
                                                                 console.log("blob uploaded: " + thumb);
                                                                 fs.unlinkSync(thumb);
                                                             }

                                                         });
                                    });

                            });

                        //DEBUG: Uncomment to test only with one file
                        //global.once = true;

                    }


                }
            }
        });
    }
});

以下是Node Azure模块的官方链接(它包含一些示例):

用于节点的Windows客户端库

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21227584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档