2017-03-23 11 views
0

基本的にファイル(たとえばimg、pdfファイル)を取得し、bluemixのオブジェクトストレージにアップロードする必要があるポストコールを作成しようとしています。トークンを取得し、authurlを作成することができます。私はurl.Butと一緒にアップロードするファイルを渡す必要があります。私はポストマンからアップロードされたファイルをどのようにしてポストでそのURLに渡すことができますかコール...下は自分のコードですノードjsコールを使用してオブジェクトストレージにファイルをアップロードする方法

app.post('/uploadfile',function(req,res){ 
     getAuthToken().then(function(token){ 
        if(!token){ 
         console.log("error"); 
        } 
        else{ 
         var fileName = req.body.file; 
         console.log("data",file); 
         console.log(SOFTLAYER_ID_V3_AUTH_URL,"url"); 
         var apiUrl = SOFTLAYER_ID_V3_AUTH_URL + config.projectId + '/' + containerName + fileName ; 
         url : apiurl, 
         method :'PUT', 
         headers :{ 
          'X-Auth-Token': token 
         },function(error, response, body) { 
          if(!error && response.statusCode == 201) { 
           res.send(response.headers); 
          } else { 
           console.log(error, body); 
           res.send(body); 
          } 
         } 
        } 
       }) 

      }); 

誰か助けてもらえますか?

+0

[私の答えは次のとおりです](http://stackoverflow.com/questions/42984333/how-to-upload-a-file-in-to-object-storage-using-node-js-call/42984620#42984620)お手伝いしますか? – rsp

答えて

0

あなたはExpressを使用しているので、あなたは次のようなものを使用する必要があります。

ファイルのアップロードを処理するボディパーサーがないと、アップロードされたファイルをExpressリクエストハンドラで取得できません。

次に、アップロードしたファイルをリクエストに渡す必要があります。

利用可能なソリューションを使用するために何がテストされたときに車輪の再発明する必要性とEAYはありません。

はそのためにあなたは、このモジュールを使用する必要があります。特に、APIキーや秘密のような機密情報を扱っているときは、あなたが何をしているのか本当に分かっていなければ、自分のソリューションを最初から実装するようアドバイスしません。あなたがしていることを本当に知っていれば、そのようなことについて助言を求める必要はありません。

https://github.com/ibm-bluemix-mobile-services/bluemix-objectstorage-serversdk-nodejs

接続ストレージをオブジェクトに:ここで

0

は、Node.jsのための公式のオブジェクトストレージSDKです

var credentials = { 
    projectId: 'project-id', 
    userId: 'user-id', 
    password: 'password', 
    region: ObjectStorage.Region.DALLAS 
}; 
var objStorage = new ObjectStorage(credentials); 

は、コンテナを作成します。

objstorage.createContainer('container-name') 
    .then(function(container) { 
     // container - the ObjectStorageContainer that was created 
    }) 
    .catch(function(err) { 
     // AuthTokenError if there was a problem refreshing authentication token 
     // ServerError if any unexpected status codes were returned from the request 
    }); 
} 

の作成します新しいオブジェクトまたは既存のオブジェクトを更新する:

container.createObject('object-name', data) 
    .then(function(object) { 
     // object - the ObjectStorageObject that was created 
    }) 
    .catch(function(err) { 
     // TimeoutError if the request timed out 
     // AuthTokenError if there was a problem refreshing authentication token 
     // ServerError if any unexpected status codes were returned from the request 
    }); 
+0

上記のコードを使用してコンテナをリストしようとすると、エラーE:\ watson \ bluemixobjectstorage \ node_modules \ bluemix-objectstorage \ lib \ HttpClient.js:50 this.authToken.expiration = body.tokenが表示されます。expires_at; ^ はTypeError:他の誰かがここで同じ問題を持っていたようにプロパティを読み取ることができません未定義 の「expires_atは」Uはこの – user7350714

+0

こんにちは@のuser7350714に助けることができる、それが見えます:https://github.com/ibm-bluemix-mobile -services/bluemix-objectstorage-serversdk-nodejs/issues/4です。開発者が調べることができるように、問題を再開するように頼むことができます。 Object Storageサービスが仕様を変更した可能性があるため、必要に応じて 'expires_at'パラメータを返さなくなりました。 – joe

関連する問題