2017-06-08 46 views
2

我們僅對S3中存儲的所有數據實施一個存儲桶,存在來自不同組織的許多數據。我們可以通過'foo'或'bar'標籤檢索'foo'組織或'酒吧'組織的使用情況嗎?如何根據標籤檢索Amazon S3上的使用情況?

USECASE:

我們部署我們的客戶稱爲「富」和「酒吧」,這個程序用來上傳文件(圖像和視頻)的移動應用程序包含了「富」的標籤,和「酒吧」基於組織的標籤。我們爲應用使用相同的API,並在S3中使用相同的存儲桶。所以我只想獲得'foo'標籤或'bar'標籤所使用的總存儲量等指標。所以我可以監控'foo'或'bar'已經使用N GB。

+0

你能提供關於你的用例的更多細節嗎?那就是,你爲什麼問,你想完成什麼?當你說「用法」時,你是指結算費用,還是你指的是訪問對象的次數? –

+0

Oke @JohnRotenstein我會做的。 – regex

回答

2

在Amazon S3的對象級別標記爲introduced in March 2017。它允許:

  • 按標籤生命週期管理(如移動到亞馬遜冰川)
  • 訪問控制策略

提供基於對象級別的標籤指標。

您需要編寫自己的腳本以檢索對象列表並根據標記計算存儲空間。但是,似乎檢索對象上標籤的唯一方法是針對每個單獨的對象請求。這意味着您將進行大量的API調用。

另一種方法是對每個對象使用object metadata。元數據由list-objects API調用返回,所以每1000個對象只需要一次API調用(這是返回數據的分頁大小)。

最後,您可以將對象存儲在單獨的存儲桶中,這樣可以使用Amazon CloudWatch指標。 Amazon S3將度量標準發送到Amazon CloudWatch,以獲取對象數量和存儲空間量。

+0

*「元數據由list-objects API調用返回」*我希望。檢查? ListObjects只有關鍵字,最後修改的大小,存儲類和etag。與ListObjectsV2相同。元數據和標籤同樣受到限制,因爲它們不能以* n *爲單位進行掃描,只能單獨獲取它們,除非我忽略了一些重要的內容。 –

+0

啊!這麼! [文檔](http://docs.aws.amazon.com/cli/latest/reference/s3api/list-objects-v2.html)說*「關於每個對象的元數據返回。」*但事實證明它是一種不同類型的元數據。謝謝! –

1

根據當前文檔,您只能使用桶標籤來分攤成本報告。

http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketBilling.html

但是與CloudWatch的可以使用的度量的配置與對象標籤濾波器返回只有那些標記S3對象指標。它可能僅限於請求度量標準。您將需要使用新的S3控制檯和說明在這裏:http://docs.aws.amazon.com/AmazonS3/latest/user-guide/configure-metrics.html

http://docs.aws.amazon.com/AmazonS3/latest/dev/metrics-configurations.html

而且http://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html

0

您可以創建一個lambda函數,在S3上載事件執行,可以記錄有關的元數據將對象轉換爲像Dynamodb或mysql這樣的數據庫。然後在s3存儲桶中刪除事件的單獨lambda函數。然後,您可以對數據庫運行分析,而不是嘗試對s3使用大量API調用。

http://docs.aws.amazon.com/lambda/latest/dg/with-s3.html

相關問題