2017-08-15 33 views
1

解析S3適配器的要求S3_ACCESS_KEYS3_SECRET_KEY現已棄用。它說使用環境變量:AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY。我們已經設置了一個帶有訪問密鑰ID的AWS用戶,我們也有我們的密鑰。我們已經更新到適配器的最新版本,並刪除了舊的S3_X_Key變量。不幸的是,只要我們這樣做,我們無法訪問,上傳或更改我們的S3存儲桶上的文件。用戶確實可以訪問我們的存儲桶屬性,並且如果我們將其更改回使用明確的S3_ACCESS_KEY並且祕密一切正常。解析服務器S3適配器已棄用

我們在Heroku上託管,直到現在還沒有任何問題。

還需要做什麼來設置它?

此棄用通知對於如何解決此問題非常模糊。 (鏈接注意:https://github.com/parse-server-modules/parse-server-s3-adapter#deprecation-notice----aws-credentials

+0

我也遇到了麻煩。我刪除了'S3Adapter'實例,並試圖只使用環境變量,但只注意到我的所有文件現在都直接保存到數據庫中。如果我弄清楚了,我會告訴你。 – enjoyjeremy

+0

謝謝,這是開源的難題......可疑的文檔和奇怪的問題! :)如果我弄清楚,也會讓你知道。 –

+0

對此有何更新? –

回答

1

Arjav Dave的答案如果您使用的是AWS或託管解決方案,您可以在其中登錄到下面,那麼最好使用下面的方法然後在服務器上運行AWS配置命令。或者如果你在本地運行一切。

但是,我在問Heroku,這適用於任何可以設置ENV變量的服務器環境。

真的只需要幾個步驟。如果你有一個以前的版本設置你要切換文件適配器剛讀: filesAdapter: 'parse-server-s3-adapter', (或任何你NPM安裝包被稱爲一些正在使用的@parse/...之一)

取出require聲明和Don」創建S3Adapter或類似index.js的任何實例變量。

然後在Heroku.com創建配置瓦爾或使用CLI:heroku config:set AWS_ACCESS_KEY_ID=abcheroku config:set AWS_SECRET_ACCESS_KEY=abc

現在運行和測試您的上傳。一切都應該很好。

新適配器使用環境變量進行訪問,您只需告訴它在index.js文件中安裝了哪個文件適配器。它將處理其餘的事情。如果這不起作用,那麼值得測試IAM配置文件設置,並確保它在返回到此部分之前全部正常工作。見下:

仍然不能正常工作?嘗試運行這個例子(編輯sample.js是你測試時的桶): https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-started-nodejs.html

完全失去了,不知道從哪裏開始?

1讓你的AWS憑據: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-your-credentials.html

2設置你的水桶 https://transloadit.com/docs/faq/how-to-set-up-an-amazon-s3-bucket/ (遵循IAM用戶的一部分,也是)

3按照IAM最佳實踐 https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html

然後回到這篇文章的頂部。

希望能幫助任何被這個困惑的人。

+0

只要您不需要將選項傳遞給適配器,就會工作。如果你應該使用例如:'filesAdapter:{module:'@ parse/s3-files-adapter',options:{bucketPrefix:'myBucketPrefix'}}' – boinged

+0

也就是說,你可能不需要傳遞選項應該都可以通過環境變量獲得,例如bucketPrefix從S3_BUCKET_PREFIX設置 – boinged

+0

現在已經有一段時間這樣使用它......這實際上好多了。我們可以從開發切換到生產,這是我們不得不在代碼級別上改變的一件事。我們只是設置了我們的ENV變量,它的功能非常出色。 –

2

我做下面的步驟,它的工作現在:

  1. 安裝亞馬遜的CLI http://docs.aws.amazon.com/cli/latest/userguide/installing.html

  2. 配置CLI通過創建一個用戶,然後創建密鑰ID和祕密 http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html

  3. 設置S3_BUCKET env變量

    出口S3_BUCKET =

  4. 使用安裝文件適配器命令

    npm install --save @parse/s3-files-adapter 
    
  5. 在我的解析服務器的index.js添加的文件適配器

    var S3Adapter = require('@parse/s3-files-adapter'); 
    var s3Adapter = new S3Adapter(); 
    
    var api = new ParseServer({ 
        appId: 'my_app', 
        masterKey: 'master_key', 
        filesAdapter: s3Adapter 
    }) 
    
+0

我如上設置它,但我收到以下錯誤:「配置文件丟失」。你見過類似的東西嗎? – DevKyle

+0

沒有沒有任何這樣的錯誤信息。確保您的aws憑證正確設置。 aws憑證文件存儲在〜/ .aws/credentials中。你可以附上你的日誌。 –

+0

你能解釋一下你在步驟3中做了些什麼嗎?你剛剛宣佈S3_BUCKET和哪裏? –