3

私が開発したアプリケーションは、基本的にユーザーがコンテンツをアップロードし、Azure Blob Storage に格納できるようにします。

コンテンツの性質上、ユーザー間ですばやく共有するためのものであるため、コンテンツの多くは、一定期間が経過するとすぐに手付かずになります。ただし、一部のコンテンツについては、何度でも使用できます。

BLOB ストレージのサイズの前例のない増加を止めるために、一定期間使用されていない BLOB を基本的に見つけてストレージから削除するツールを作成することを計画しています。

標準のファイル システムの場合は、「最終アクセス時刻」を使用して、ファイルが最後に使用された時刻を示すことができます。ただし、最終アクセス時刻を決定するためのブロブの同様のプロパティが見つからないようです。

では、この状況に遭遇した人はいますか?これを達成するための最良の方法は何でしょうか? それとも私が気にしすぎですか?

フィードバックや提案は大歓迎です。

よろしくお願いします。

4

5 に答える 5

5

私はこれを処理する2つの方法しか見ることができません:

  1. BLOBへのアクセスを前面に出し、SAS署名付きのBLOBURLを取得するためにサービスにアクセスする必要があるようにします。このようにして、アクセスされているBLOBをカウントおよび監視できます。しばらくすると、アクセスが少ない/アクセスできない古いブロブを削除します。これには、パブリックアクセスをオフにして、人々がSAS署名を回避できないようにする必要があります。
  2. ストレージ分析をオンにして、GETリクエストを監視します。たとえば、1か月間のすべてのGETアクセスを解析し($ logsは1時間ごとに更新されます)、リソースごとにグループ化する必要があります。これを自動化すれば、それほどひどいことにはなりません。これにより、アクセスされたすべてのリソースのリストが表示されます。
于 2012-08-24T13:58:01.017 に答える
0

Blob ストレージを使用している場合は、Gaurav が提案したアプローチに従うことが最善の選択肢です。開始に関するドキュメントについては、こちらを参照してください。

https://azure.microsoft.com/en-us/documentation/articles/storage-analytics/ .

当社の .NET クライアント ライブラリには、ログ ファイルの解析のサポートが含まれていることに注意してください。このデモは、クライアント ライブラリの単体テストで確認できます。

https://github.com/Azure/azure-storage-net/search?utf8=%E2%9C%93&q=ListLogs

于 2015-08-31T16:34:36.250 に答える
-2

ブロックおよびページ BLOB の Properties.LastModifiedUtc を使用して、最終更新日を取得できます。ページまたはブロック BLOB では、GetBlockBlobReference または GetPageBlobReference API を FetchAttributes() と共に使用して BLOB 参照を取得する必要があります。その後、LastModifiedUtc を探すことができます。

たとえば、ブロック blob のコード スニペットは次のとおりです。

CloudBlockBlob blockBlob = container_name.GetBlockBlobReference(uri.ToString());
blockBlob.FetchAttributes();
// blockBlob.Properties.LastModifiedUtc will return the last modified date for the blob.
于 2012-08-24T01:37:12.590 に答える