簡體   English   中英

環境變量不接受天藍色

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM