我試圖使用this microsoft azure node.js SDK處理blob存儲和簡單地上傳文件。Node.js的Windows 8日期時間不正確,使用格林威治標準時間
當我在Windows 7機器上運行這個相同的代碼時,服務能夠正確認證並且圖像被上傳。 Windows 8計算機和Windows 7計算機都運行節點v.0.12.2,但Windows 8計算機在請求日期標題太舊時生成錯誤。它似乎使用我的系統時間格林威治標準時間和天藍色的服務在我的時區或東西認證?
代碼:
var azure = require('azure-storage');
var blobService = azure.createBlobService(myStorageAccount, myAccessKey);
blobService.createContainerIfNotExists('testzies', {publicAccessLevel : 'blob'}, function(error, result, response){
});
blobService.createBlockBlobFromLocalFile('testzies', 'first', 'C:/temp/sample.jpg', function(error, result, response){
});
錯誤,只有Windows 8機器上:
{ [Error: Forbidden] } { [Error: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. code: 'AuthenticationFailed',
authenticationerrordetail: 'Request date header too old: \'Fri, 22 May 2015 02:56:35 GMT\'', statusCode: 403 }
建議看看這個SO貼子如何在您的代碼中明確設置時區:http://stackoverflow.com/questions/8083410/how-to-set-default -timezone-在節點-JS。如果這不能解決問題,那麼你的Win8機器上可能存在一個微小的時鐘歪斜(即timzone是正確的,但實際時間是錯誤的)。 –