我正在为我的应用程序使用CompoundJS,现在尝试实现一个脚本 将图像从compoundjs上传到azure blob。
我搜索了网页,发现有一个模块azure
(npm install azure)
如this link中所述。
以下是我在我的应用程序中使用的代码段
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
配置一些工作,但不确定在哪里。
请建议。
答案 0 :(得分:1)
您需要提供这样的帐户名称/密钥:
var blobService = azure.createBlobService('accountname', 'accountkey');
您可以在此处查看源代码:https://github.com/WindowsAzure/azure-sdk-for-node/blob/master/lib/azure.js。
答案 1 :(得分:0)
提供存储访问凭据的方法有多种。我正在使用环境变量来设置帐户名称和密钥。
以下是我使用bash设置环境变量的方法:
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 blob的现有图像的缩略图,使用imagemagick:
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;
}
}
}
});
}
});
以下是Azure模块的官方链接(包含一些示例):