私はboto3バケットの中にファイルをアップロードするための呼び出しを書いています。 ファイル名、バケットを渡す必要があります。 ファイルをバケットにアップロードします。 しかし、バケットにアップロードされた各ファイルのバージョンを追加しようとしています。だから、私はバケツのバージョニングを可能にしました。そのバケツにアップロードしたファイルのバージョンを私に渡しました。boto3バージョンとファイルに変更が加えられた場合に追加する追加のファイル
その後bucketFile = s3.meta.client.upload_file(filename, str(bucket),filename)
私がアップロードされ、そのファイルのオブジェクトバージョンを取得するには、私は
objectSummary = s3.ObjectSummary(bucket,filename)
object = objectSummary.get()
versionID = object.get('VersionId')
次の操作を行い、次のコードは、私がそのバケットにアップロードするすべてのファイルのバージョンIDを提供します。 だから私は何をしようとしていることは ある--->ファイルのバージョンを取得 ---->私にとっては困難な部分があることであるが、この
versionsAdd = versions(version_url=versionID, filename=filename)
のように私のローカルデータベースにそのバージョンを追加ファイルの内容が同じであれば、そのバージョンを追加したくありません。 boto3は、ファイルの内容にかかわらず私にversionIDを与えます。だから私のために、私はファイルを読んで、私のバケツ内の私の既存のファイルとそれを比較できるようにしたい。ファイルに変更が加えられた場合は、ローカルデータベースの私のバージョンの下に追加するだけです。バケツにアップロードされたファイルがまだ同じ内容の場合 - >それをスキップしてローカルデータベースに追加しないでください。
ああ!同じファイルには同じETAGが与えられていますか? – Dilli
はい。 ETagは、コンテンツのMD5チェックサムです。 –
ライフセーバー!どうもありがとうございます! – Dilli