如何在 AWS 上快速創建 Windows 10 電腦

使用 AWS WorkSpaces 在雲端上快速創建 Windows 10 電腦 最近我需要「快速啟動」一台 Windows 10 電腦並遠程訪問它,而不需要真的去購買和設置一台電腦。 我的目標是擁有一台全新安裝的 Windows 10 電腦,在我的 Mac 上使用它,嘗試運行一些命令,如安裝 npm、Git 等等,以便測試我的課程中的指令是否正常運行,然後在一小時後將其摧毀。 我總結了各種選擇,並了解了 AWS WorkSpaces。 它們可以支持更複雜的工作流程,但對於我的簡單用例也有效。 我假設您已經有了一個 AWS 賬戶。 登錄 AWS 控制台後,在 AWS 中搜索 WorkSpaces 服務: 點擊 立即開始 並選擇 快速設置: 現在選擇一台機器。我選擇了具有 Windows 10 的 標準版: 協議會影響您的連接方式。我選擇了 WSP(亞馬遜的 WorkSpaces 流傳協議)。 輸入用戶詳細信息,然後按 啟動 WorkSpaces: 接下來,您將收到一封電子郵件,其中包含有關如何設置用戶密碼以及如何下載 AWS WorkSpaces 客戶端的說明。 安裝應用程序,然後在您收到的電子郵件中(可能需要 20 分鐘)輸入您通過電子郵件收到的註冊碼: 然後輸入您的用戶密碼: 您現在可以開始使用了!

如何在AWS中創建IAM用戶

在本教程中,我將解釋如何通過IAM(身份和訪問管理)面板在AWS中創建具有程序化訪問權限的用戶。 如果您還沒有AWS帳戶,請從這裡開始:https://aws.amazon.com。 一旦您設置了帳戶並且已登錄到AWS,請點擊頂部的用戶名,然後選擇“我的安全憑證”。 在側邊欄中,點擊“使用者”和“新增使用者”。啟用“程序化存取”。 透過頁面底部的按鈕(“下一步:權限”),移至下一個畫面。 單擊“直接連接現有策略”: 在此示例中,我創建了一個可以訪問S3上傳文件的用戶。 在過濾器中輸入“S3”以顯示S3策略。 選擇AmazonS3FullAccess權限: 用戶創建後,您將獲得一對訪問金鑰ID和密鑰。 將這些複製到您項目中用作環境變數的.env文件中。

如何將您的 S3 存儲桶設為公開

我之前寫過一篇關於如何上傳圖片至 S3 的文章。 在我準備好 S3 存儲桶,並且成功上傳了圖片並將 URL 存儲在數據庫後,我發現這些圖片無法被公開以只讀的方式訪問。 圖片雖然存在,但任何人都無法查看。 如果我試圖訪問它,只會看到類似下面這樣的錯誤信息: <Error> <Code>AccessDenied</Code> <Message>Access Denied</Message> <RequestId>E5FBYNEYEFNZH</RequestId> <HostId> iImqC8XkvmPP4/BJxNGDZrPrDr7us1u3UeZqH8prlv3dk69R9m7uOaaaZDvTLAtne2rLkRWZ4= </HostId> </Error> 我覺得可能是權限問題,所以首先我試圖編輯“阻止公共訪問”設置,將原有的阻止設置禁用: 但是這並沒有解決問題,圖片依然無法訪問。 於是,我嘗試在單個文件的權限設置中,將“Everyone (公共訪問)”設置為“只讀”: 這樣做對於單個文件是有效的。 因此,我前往一般存儲桶權限,那裡有一個相似的 ACL 權限面板,我試圖設置相同的設置。 我將“Everyone (公共訪問)”設置為“只讀”,但結果並不如預期。 雖然我明確地設置了公共訪問權限,但是人們仍然無法公開查看文件。 事實上,沒有通過點擊操作可以實現這一點。 我必須設置一個存儲桶策略,可以從存儲桶權限頁面進行設置,然後我添加了以下內容: { "Version": "2008-10-17", "Statement": [ { "Sid": "AllowPublicRead", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::YOURBUCKETNAME/*" } ] } 請將 YOURBUCKETNAME 修改為您的存儲桶名稱。 通過添加這一段內容,我成功讓它生效。添加後,您可以將“阻止公共訪問”設置如下: 這就是全部了。現在,我的文件(在這種情況下是圖片)可以公開訪問了。

如何從 Node.js 上傳文件到 S3

我有一個簡單的使用案例。 我正在建立一個工作看板,現在是建立提交新工作職位的表單的時候了。 招聘人員可以輸入公司詳細資料、職位詳細資料和公司標誌圖片。 數據存儲在數據庫中,起初我試圖將標誌存儲在數據庫中,但過了一段時間,我意識到儘管在技術上是可行的,但在存儲二進制數據方面存在一些問題,而且任務需要花費太長的時間。因此,我決定將其上傳到 S3。 S3是AWS提供的一個出色的服務。由於我已經在其他方面使用AWS,添加S3存儲桶很容易。 所以我去創建了一個S3存儲桶。 我已經有了一個AWS帳戶。如果您沒有,請從這裡開始: https://aws.amazon.com。 一旦設置好帳戶,請在AWS中創建一個IAM用戶。登錄AWS,點擊頂部的您的名稱,然後點擊“我的安全憑證”。 在側邊欄中點擊“用戶”和“添加用戶”。啟用“編程訪問。” 通過頁面底部的按鈕(“下一步: 權限”)來轉到下一個屏幕。 點擊“直接附加現有策略”: 在過濾器中輸入“S3”以顯示S3策略 選擇AmazonS3FullAccess權限: 用戶創建完成後,您將獲得一對訪問密鑰ID和安全訪問密鑰。將其複製到您的項目中的.env文件中,或者存儲在某個地方以便以後使用。 接下來,進入S3並創建一個存儲桶。從S3首頁https://s3.console.aws.amazon.com點擊“創建存儲桶”按鈕。 設置一個名稱,選擇一個AWS區域,禁用“阻止所有公共訪問”(我們將在另一篇文章中討論權限),然後點擊頁面底部的“創建存儲桶”按鈕。 完成!現在是深入研究Node.js的時候了。我在Next.js中在API調用中使用這段代碼。 首先使用npm install aws-sdk安裝aws-sdk包。 如前所述,將您的AWS訪問代碼存儲在.env中: AWS_ACCESS_KEY_ID=<訪問密鑰> AWS_SECRET_ACCESS_KEY=<安全訪問密鑰> AWS_BUCKET_NAME=<存儲桶名稱> 在頂部添加 import AWS from 'aws-sdk' 然後使用以下代碼初始化s3對象: const s3 = new AWS.S3({ accessKeyId: process.env.AWS_ACCESS_KEY_ID, secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY }) 現在,當您想要上傳文件時,從存儲中加載它: const filename = '文件名' const fileContent = fs.readFileSync(fileName) const params = { Bucket: process.env.AWS_BUCKET_NAME, Key: `${filename}.jpg`, Body: fileContent } s3.upload(params, (err, data) => { if (err) { reject(err) } resolve(data....