Backblaze S3の問題:削除後の重複アップロード

Backblaze を S3 ストレージとして使用しており、「アップロードの孤児をクリーンアップ」設定を有効にしています。問題点は、孤児アップロードが削除されるのではなく、0 バイトの重複ファイルが作成されてしまうことです。

以下に例を示します。(2) は同じ名前のファイル数を示しています。展開すると、元のファイルも存在し、0 バイトのファイルも確認できます。同様の問題に遭遇した方はいますか?これは Backblaze の問題なのか、設定の問題なのでしょうか?ご教示ください。

Discourse は S3 API を使用しており、AWS S3 と問題なく動作するため、これは Backblaze 側の問題として扱われています。サポートに連絡してみることをお勧めします。これについて、アップロード用のオブジェクトストレージの利用 (S3 および互換サービス) に注記を追加します。

「いいね!」 3

0バイトのファイル名が切り捨てられていることを示す省略記号があります。完全なファイル名は何でしょうか?私は、このバケットにファイルライフサイクルが設定されており、そのファイルは「隠しマーカー」である(彼らがそう呼んでいるように)と推測します。

ライフサイクルが期限切れになると、両方のバージョンが削除されるはずです。

「いいね!」 3

切り捨てられた部分は「隠されています」。おっしゃる通りだと思います。重複しているファイルはすべて最近アップロードされたもののようです。少し時間をおいて、消えるかどうかを確認します。ありがとうございます。

「いいね!」 1

こんにちは、
問題が解決したか更新をお願いできますか?
最後の投稿から1年以上経っていますので、これで大丈夫になっていることを願っています… :slight_smile:

「いいね!」 1

問題はまだ解決していません。BackBlaze の孤立したファイルをすべて手動で削除しました。ストレージの定期的なクリーンアップ自体がタスクであるため、この時点で S3 に移行すると思います。

「いいね!」 3

私の経験のアップデートです…
無料のB2アカウント(つまり最初の10GB)を持っており、支払い方法を追加していません。

バックアップファイルはローテーションされ、「隠し」ファイルは数日後に永久に削除されます。一度に7つ以上のファイルを持つことはありません(Discourseは最大5つのデイリーバックアップローテーション)。バックアップは常に約500MB以下なので、支払いが発生したり、「孤立した」ファイルを手動で削除したりする必要はありませんでした。

「いいね!」 2

この件に関して何か変更はありましたか?どなたかBackblazeサポートに連絡してみましたか?

「いいね!」 1

しかし、問題は「アップロード」にあるようです!!
「バックアップ」は、管理するファイルが多すぎたり少なすぎたりするわけではありません。手動でも管理できます。

この問題は継続しているようです。

@Falco Discourse が孤児をクリーンアップするためにどのような S3 操作を実行するか、詳しく説明していただけますか?

ありがとうございます。copy_to_tombstone が関係していることがわかりました。tombstone と孤立ファイルに関するドキュメントが見つからなかったので、フォーラムで読んだ内容に基づいてどのように機能するか推測するしかありません。もし間違っていたら訂正してください。

  1. 孤立ファイルが特定されると(クリーンな孤立アップロードの猶予期間時間)、tombstone フォルダにコピーされます(copy_object)。
  2. その後、削除されます(または削除されるはずです)(delete_object)。
  3. 削除されたアップロードのパージ猶予期間日になったら、tombstone フォルダから削除されます。

これで合っていますか?

Backblaze で見ている内容に基づくと、tombstone フォルダにコピーされているように見えます。削除されているのではなく、空の非表示バージョンが作成されているだけです。

「いいね!」 1

サポートに連絡したところ、孤児の問題に対する解決策があるようです。Backblazeサポートからの回答は以下のとおりです。

ここでいくつかの問題が発生しています。アカウントを確認したところ、バケットのライフサイクルルールが「すべてのファイルを保持」に設定されています。ライフサイクルルールを「ファイルの最新バージョンのみを保持」に変更すると、非表示になったファイルは非表示になってから24時間後に削除され、ストレージ容量が解放されます。

ここで追加するもう1つのレイヤーは、S3互換サービスを使用している場合、オブジェクトの削除が呼び出されるたびに、オブジェクトは非表示になります。そしてここから、バケットのライフサイクルルールに応じて、削除されるか非表示のままになります。お客様の場合、「すべてのファイルを保持」により、ファイルは非表示のまま削除されていません。

オブジェクトの削除が呼び出されたときにオブジェクトが削除されるようにするには、ファイルバージョンIDを削除呼び出しに付随させる必要があります。ファイルが単に非表示になっている場合、統合はこの処理を行っていないと思われます。

これらのファイルをバケットから削除するには、Backblazeアカウントにサインインし、バケットに移動して、ライフサイクル設定をファイルの最新バージョンのみを保持**に更新する必要があります。これにより、非表示のファイルは24時間後にバケットから削除されます。

デフォルトでは、Backblazeは新規作成されたバケットに「すべてのファイルを保持」ライフサイクルルールを設定します。これが、誰もが孤児の問題を抱えている理由でしょう。「ファイルの最新バージョンのみを保持」にライフサイクルルールを変更すると、非表示になってから24時間後に孤児が削除されます。

これは、このスレッドで言及する価値があるかもしれません。

「いいね!」 3

Nice find! Can you please edit it to the wiki?

ウィキだとは知りませんでした。更新しました。

「いいね!」 1