[英]Environment variable not accepting for azure
我在終端中定義了天藍色的環境變量,如下所示,
SET AZURE_STORAGE_ACCOUNT=accountname
SET SAS_TOKEN="sr=c&sp=rwl&sig=signatureKey%3D&sv=2017-04-17&se=2018-03-10"
定義了變量之后,我在天藍色的blob存儲函數中調用了這些變量,例如,
AZURE_STORAGE_ACCOUNT= process.env.AZURE_STORAGE_ACCOUNT;
SAS_TOKEN = process.env.SAS_TOKEN;
var blobUri = "http://"+AZURE_STORAGE_ACCOUNT+".blob.core.windows.net";
var blobService = azureStorage.createBlobServiceWithSas(blobUri, SAS_TOKEN).withFilter(new azureStorage.ExponentialRetryPolicyFilter());
blobService.createBlockBlobFromLocalFile('mycontainer', 'sparks-events-data', fileToWrite, function(error, result, response) {
if (!error) {
console.log("upload successful..");
} else {
console.log(error);
}});
當我在文件上方運行時,出現錯誤提示
StorageError:服務器無法驗證請求。 確保包括簽名在內的Authorization標頭的值正確形成。
但是,當我直接在代碼內部調用SAS令牌時,它可以正常工作。 我正在這樣使用
var sasKey = "sr=c&sp=rwl&sig=signatureKey%3D&sv=2017-04-17&se=2018-03-10";
var blobService = azureStorage.createBlobServiceWithSas(blobUri, sasKey ).withFilter(new azureStorage.ExponentialRetryPolicyFilter());
這對我來說可以。 我需要將SAS令牌設置為環境變量。 這是我所缺少的。 請有人為我建議解決方案。 提前致謝,
export
這些環境變量。 導出變量會導致該變量由該 Shell中啟動的后續進程繼承。
export SAS_TOKEN="..."
handling logic. 在滾動您自己的處理邏輯之前,您可能需要看一下npm軟件包。 作為一個人,我們已經破解了這一點-
https://github.com/motdotla/dotenv
在Windowsland中,只需使用set
,但請確保您的Node進程在同一終端窗口中啟動:
C:\lab> set KEY="secret"
C:\lab> type app.js
let key = process.env.KEY;
console.log('KEY is ' + key);
C:\lab> node app.js
KEY is "secret"
當心那些報價!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.