Node.js 入門 - AWS SDK for JavaScript

我們宣布即將推出 end-of-support AWS SDK for JavaScript v2。建議您遷移至 AWS SDK for JavaScript v3。如需日期、其他詳細資訊和如何遷移的資訊,請參閱連結公告。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Node.js 入門

JavaScript code example that applies to Node.js execution

這個 Node.js 程式碼範例會說明:

  • 如何為專案建立 package.json 資訊清單。

  • 如何安裝並加入專案所使用的模組。

  • 如何從AWS.S3用戶端類別建立 Amazon 簡易儲存服務 (Amazon S3) 服務物件。

  • 如何建立 Amazon S3 儲存貯體並將物件上傳到該儲存貯體。

使用案例

此範例顯示如何設定和執行建立 Amazon S3 儲存貯體的簡單 Node.js 模組,然後在其中新增文字物件。

由於 Amazon S3 中的儲存貯體名稱必須是全域唯一的,因此此範例包含第三方 Node.js 模組,可產生唯一 ID 值,您可以將其合併到儲存貯體名稱中。這個額外的模組名為 uuid

先決條件任務

若要設定和執行此範例,您必須先完成這些任務:

  • 建立可用來開發 Node.js 模組的工作目錄,並將該目錄命名為 awsnodesample。請注意,目錄必須建立在可由應用程式更新的位置。例如,請勿在 Windows 環境的「C:\Program Files」下建立目錄。

  • 安裝 Node.js。如需詳細資訊,請參閱 Node.js 網站。您可以前往 https://nodejs.org/en/download/current/,尋找並下載適用於各種作業系統的 Node.js 目前版本和 LTS 版本。

第 1 步:安裝 SDK 和依賴關係

您可以使用 npm (Node.js JavaScript 套件管理員) 來安裝套件的 SDK。

移至套件中的 awsnodesample 目錄,並將下列指令輸入命令列。

npm install aws-sdk

此命令會在您的專案 JavaScript 中安裝 SDK,並更新package.json以將 SDK 列為專案相依性。您可以在 npm 網站搜尋「aws-sdk」,找到​有關此套件的資訊。

接下來,請將 uuid 模組安裝至專案,方法是在命令列中輸入下列指令;該指令會隨即安裝模組並更新 package.json。如需 uuid 的詳細資訊,請參閱 https://www.npmjs.com/package/uuid 上的模組頁面。

npm install uuid

系統會在專案的 node_modules 子目錄中安裝這些套件及其相關聯的程式碼。

如需有關安裝 Node.js 套件的詳細資訊,請參閱在本機下載和安裝套件和在 npm (Node.js 套件管理員) 網站上建立 Node.js 模組。如需有關下載和安裝的資訊 AWS SDK for JavaScript,請參閱為下列項目安裝 SDK JavaScript

步驟 2:設定您的認證

您需要提供認證,以 AWS 便 SDK 只能存取您的帳戶及其資源。如需取得帳戶登入資料的詳細資訊,請參閱使用 SDK 驗證 AWS

建議您建立一個共用登入資料檔案,以便保留此資訊。如要瞭解如何作業,請參閱從共用登入資料檔案中在 Node.js 中載入登入資料。登入資料檔案應該如下方範例所示。

[default] aws_access_key_id = YOUR_ACCESS_KEY_ID aws_secret_access_key = YOUR_SECRET_ACCESS_KEY

您可以使用 Node.js 執行下列程式碼,判斷是否已正確設定認證:

var AWS = require("aws-sdk"); AWS.config.getCredentials(function(err) { if (err) console.log(err.stack); // credentials not loaded else { console.log("Access key:", AWS.config.credentials.accessKeyId); } });

同樣地,如果您已在config檔案中正確設定區域,則可以將AWS_SDK_LOAD_CONFIG環境變數設定為任何值並使用下列程式碼來顯示該值:

var AWS = require("aws-sdk"); console.log("Region: ", AWS.config.region);

步驟 3:為專案建立 Package JSON

awsnodesample 專案目錄建立完畢後,您便能建立和新增 package.json 檔案,藉此保留 Node.js 專案的中繼資料。如需有關在 Node.js 專案package.json中使用的詳細資訊,請參閱建立封裝. json 檔案。

在專案目錄中,建立稱為 package.json 的新檔案。接著,將下列 JSON 新增至檔案。

{ "dependencies": {}, "name": "aws-nodejs-sample", "description": "A simple Node.js application illustrating usage of the SDK for JavaScript.", "version": "1.0.1", "main": "sample.js", "devDependencies": {}, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "NAME", "license": "ISC" }

儲存檔案。在您安裝所需模組時,系統會完成檔案的 dependencies 部分。您可以在這裡找到一個 JSON 文件,該文件顯示了這些依賴關係的示例 GitHub。

步驟 4:編寫 Node.js 程式碼

建立名為 sample.js 的新檔案,其中包含範例程式碼。首先添加require函數調用以包含用於 JavaScript和uuid模塊的 SDK,以便您可以使用它們。

在這種情況下,透過將唯一 ID 值附加到可識別的前綴,建立用於建立 Amazon S3 儲存貯體的唯一儲存貯體名稱。'node-sdk-sample-'請呼叫 uuid 模組來產生唯一 ID。然後,為 Key 參數建立一個名稱,該參數可用來上傳物件至儲存貯體。

建立 promise 物件,以便呼叫 AWS.S3 服務物件的 createBucket 方法。收到成功回應後,建立將文字上傳至新建儲存貯體所需的參數。使用另一個 promise 來呼叫 putObject 方法,並上傳文字物件至儲存貯體。

// Load the SDK and UUID var AWS = require("aws-sdk"); var uuid = require("uuid"); // Create unique bucket name var bucketName = "node-sdk-sample-" + uuid.v4(); // Create name for uploaded object key var keyName = "hello_world.txt"; // Create a promise on S3 service object var bucketPromise = new AWS.S3({ apiVersion: "2006-03-01" }) .createBucket({ Bucket: bucketName }) .promise(); // Handle promise fulfilled/rejected states bucketPromise .then(function (data) { // Create params for putObject call var objectParams = { Bucket: bucketName, Key: keyName, Body: "Hello World!", }; // Create object upload promise var uploadPromise = new AWS.S3({ apiVersion: "2006-03-01" }) .putObject(objectParams) .promise(); uploadPromise.then(function (data) { console.log( "Successfully uploaded data to " + bucketName + "/" + keyName ); }); }) .catch(function (err) { console.error(err, err.stack); });

您可以在這裡找到此範例程式碼 GitHub。

步驟 5:執行範例

輸入下列命令執行範例。

node sample.js

如果上傳成功,您就會在命令列看到確認訊息。您也能夠在 Amazon S3 主控台中尋找儲存貯體,以及上傳的文字物件。