gpt4 book ai didi

Node.js Azure 存储 blob

转载 作者:搜寻专家 更新时间:2023-10-31 23:49:24 24 4
gpt4 key购买 nike

我是 Azure&node.js 初学者。我尝试在 node.js 上执行下面的文件上传示例,但它在 blob.client.createContainerIfNotExists() 上不起作用。

错误显示:

Error: createContainerIfNotExists

这意味着 createContainerIfNotExists() 的错误情况会简单显示。

我想知道我是否错误地编写了 blob.client.createContainerIfNotExists() 或者 azure.createBlobService() 无法成功。

node.js version v0.6.12
express version 2.5.11
azure version 0.5.3

谢谢!

/**********************/
File upload sample:
/**********************/

var DEVSTORE_STORAGE_ACCOUNT = 'xxxxx';
var DEVSTORE_STORAGE_ACCESS_KEY= 'xxxx';
var DEVSTORE_BLOB_HOST = 'xxxxx';

var express = require('express')
, routes = require('./routes');

var util = require('util');

// Azure module
var azure = require('azure');
var blob = require('./blob.js');


// BLOB container
blob.CONTAINER = 'nodejs';

// BLOB service
blob.client = azure.createBlobService(
DEVSTORE_STORAGE_ACCOUNT,
DEVSTORE_STORAGE_ACCESS_KEY,
DEVSTORE_BLOB_HOST);

var app = module.exports = express.createServer();

// Configuration

app.configure(function() {
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.bodyParser());
app.use(express.methodOverride());
// app.use(express.logger());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function(){
app.use(express.errorHandler());
});

// Routes

app.get('/', routes.index);

// BLOB upload
app.get('/upload', routes.upload);

// BLOB upload
app.post('/uploadtoblob', routes.uploadblob);

// BLOB list
app.get('/list', routes.listblobs);

// BLOB delete
app.post('/delete/:id', routes.deleteblob);

// BLOB property
app.get('/info/:id', routes.information);

// BLOB container create
blob.client.createContainerIfNotExists(blob.CONTAINER, function(err) {
if (err) {
console.log('Error : createContainerIfNotExists');
process.exit(1);
} else {

blob.client.setContainerAcl(blob.CONTAINER, azure.Constants.BlobConstants.BlobContainerPublicAccessType.BLOB, function(err) {
if(err) {
console.log('Error : setContainerAcl');
process.exit(1);
}
});
}
});

var port = process.env.port || 3000;
app.listen(port, function(){
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
});

最佳答案

最新的 Azure Node SDK 需要 Node 版本 > 0.6.l5。我建议升级 sdk 和您的 Node 版本。

您可以按如下方式更改代码以获取有关特定错误的更多信息:

console.log('错误:createContainerIfNotExists' + JSON.stringify(err));

您需要在本地运行 azure 存储模拟器或者您需要提供应用可以使用的 azure 存储帐户的凭据。通常通过 AZURE_STORAGE_ACCOUNT 和 AZURE_STORAGE_ACCESS_KEY 环境变量或通过将连接字符串传递到 createBlobService 工厂来完成。

有关使用 Blob 存储设置第一个应用程序的分步示例,请参阅:

http://www.windowsazure.com/en-us/develop/nodejs/how-to-guides/blob-storage/

关于Node.js Azure 存储 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14351944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com