0

フォルダまたはカテゴリがテーブルに格納されているデータベース テーブルがあります。

class Nodeファイルはクラスに保存されますFile

NodeFileモデルには、Amazon s3ファイルの文字列キーであるフィールドが呼び出されてkeyいます

お気に入り

mybucket/files/pdf/abc.pdf

カスタム ビルド python 関数を実行して、データベースを更新します。

今私が欲しいのは、Amazon S3 のどのファイルが変更または削除されたか、またはどの新しいファイルが追加されたかを確認したいということです。

要するに、このようなすべてのAmazonキーのリストがあります s3_keys

mybucket/files/pdf/abc.pdf
mybucket/files/pdf/abc2.pdf
mybucket/files/pdf/abc3.pdf
mybucket/files/pdf/abc4.pdf
mybucket/files/pdf/new/
mybucket/files/pdf/new/abc.pdf
mybucket/files/pdf/2011/

次に、2つのデータベーステーブル、つまり列キーにキーがNodeありますFile

s3_keysデータベースのキーフィールドと 比較できるようにしたいのですが、

  1. キーが同じなら、何もしません
  2. キーはs3にあり、データベースにはないので、入れましたnew_list
  3. キーがs3ではなくデータベースにある場合、私は持っていますdelete_list

それから私はそれらの操作を行うことができます

これにアプローチする最良の方法は何ですか

UPDTAE:

私は3つのリストを持つことを考えています

Nodes_List = [(pk, key), .....]
File_List = [(pk, key), .....]
s3_keys = [key1, key2, .....]

要素を除外する必要があります

4

1 に答える 1