簡體   English   中英

RESTFUL API 與 AWS S3

[英]RESTFUL API with AWS S3

所以我的“技術負責人”希望我的團隊使用 AWS DynamoDB 作為數據庫創建一個 REST API 和 SpringBoot,我們成功地實現了它。 但是,現在他想用 AWS S3 替換 AWS DynamoDB,這對我來說沒有意義。 那將如何運作? 將 API 調用保存為文本文件,然后將其存儲在 S3 中? 我該怎么做? 假設我可以執行 POST 請求,並且 S3 中的一個文件中有 5 個,接下來我該如何刪除或更新那里的 2 條記錄? 有沒有人有任何經驗可以在這里闡明? 同樣在你問“為什么不問技術領先?”之前我們做到了,當我們詢問如何使用 DynamoDB 時,他說“自己解決”同樣的答案

您應該能夠將 AWS API 網關(使您能夠創建 REST API)與 S3 集成用於類似的事情。 或者滾動您自己的 API,它使用 AWS SDK 向 S3 發出請求。 S3 是一個 object 存儲而不是數據庫,您可以使用 REST API 來存儲單個對象,因此,而不是 1 個“文件”,因為您把它放在那里有 2 條記錄,您有一個 ZA8CFDE6331BD59EB66AC96F89111C4 記錄。

AWS 提供了一個將 API 網關與 S3 集成的示例。

DynamoDB 的一個用例是將其用作純鍵值存儲。 例如,您可以使用創建一個簡單的 Wiki 並使用文檔名稱作為鍵來存儲文檔。

您不能將 S3 用於相同的用例沒有根本原因。 S3 是一個 object 存儲,這是給定單個密鑰的另一種存儲對象的方式。

因此,如果您的解決方案沒有使用過濾器表達式或其他邏輯在 dynamo 中執行復雜查詢,您可能只需更改存儲,並將每個鍵/值對視為與鍵名一起存儲的 S3 項。

這里有一些重要的警告。 其中最重要的一點是,如果您要更新數據,或者甚至在使用之前查看密鑰是否存在,您遲早可能會遇到 S3 的最終一致性。 鑒於提供的詳細信息,幾乎不可能判斷 S3 或 Dynamo 是否更適合您的應用程序需求。

更大的問題:為什么要更改數據存儲? 如果您在使用 Dynamo 時遇到問題,最好詢問一下這個問題。 很可能有解決方案。

Ashaman Kingpin,感謝您分享您的知識。 按照您列出的示例“將 API 網關與 S3 集成”,直到“公開 API 方法以列出調用者的 Amazon S3 存儲桶”,我在“響應正文”中得到“AccessDenied”。 我已經確認我擁有該頁面上帶有黑色背景框的所有權限和信任策略。 有什么問題? 我在哪里可以解決問題? 非常感謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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