2017-08-08 11 views
0

我想主辦的Heroku的API,一切都進行得非常順利,但我不能完成安裝,因爲谷歌雲語言API SDK需要文件路徑,而不是僅僅文件中的值。加入谷歌API密鑰文件到Heroku的

我已成功設置環境變量所有我使用的服務。我曾試圖將文件的內容添加到環境變量:

heroku config:set GOOGLE_KEY_FILE={....}

這是不行的,因爲它需要一個文件路徑。

短犯文件,我顯然無法做到的,我怎麼能得到的文件到Heroku的文件系統,以便我能API讀它?

還是有另一種方法可以做到這一點,以下運行正常本地時,它默認爲一個文件路徑:

const initialiseLanguage = require('@google-cloud/language') 
const { 
    GOOGLE_PROJECT_ID: projectId, 
    GOOGLE_KEY_FILE: keyFilename = './side-project-xxxxxxxxx.json' 
} = process.env 

const language = initialiseLanguage({ 
    projectId, 
    keyFilename 
}) 

在此先感謝。

回答

1

在我的應用程序使用GCS密鑰文件太多了,我還設置了密鑰文件JSON成一個環境變量,所以這是我做的:

const fs = require('fs'); 
const path = require('path'); 
const gTokenPath = path.join(`${__dirname}/gToken.json`); 
fs.writeFileSync(gTokenPath , process.env.GCS_JSON_TOKEN); 

const gcsKeyFile = JSON.parse(process.env.GCS_JSON_TOKEN); 

const language = initialiseLanguage({ 
    projectId: gcsKeyFile.project_id, 
    keyFilename: gTokenPath, 
})