3

Azure&node.js初心者です。以下のファイルアップロードサンプルをnode.jsで実行しようとしたのですが、.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);
});
4

1 に答える 1

3

ノードの最新の azure SDK には、ノード バージョン > 0.6.l5 が必要です。SDK とノード バージョンの両方をアップグレードすることをお勧めします。

次のようにコードを変更して、特定のエラーに関する詳細情報を取得できます。

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/

于 2013-03-19T05:13:53.457 に答える