<p>mc-Spiegel überschreiben derzeit defekt</p>

Erstellt am 29. Jan. 2020  ·  12Kommentare  ·  Quelle: minio/mc

Erwartetes Verhalten

mc mirror --overwrite sollte geänderte Dateien erkennen

Tatsächliches Verhalten

Es scheint, es tut es derzeit nicht

Schritte zum Reproduzieren des Verhaltens

$ mc mb myminio/mybucket 
Bucket created successfully `myminio/mybucket`.

$ echo one > testdir/testfile.txt

$ cat testdir/testfile.txt 
one

$ mc mirror --overwrite testdir myminio/mybucket 
...estfile.txt:  4 B / 4 B ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 227 B/s 0s

$ mc cat myminio/mybucket/testfile.txt
one

$ echo two > testdir/testfile.txt

$ cat testdir/testfile.txt 
two

$ mc mirror --overwrite testdir myminio/mybucket 
 0 B / ? ┃░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓┃ 0s

$ mc cat myminio/mybucket/testfile.txt
one

mc --version

mc-Version RELEASE.2020-01-25T03-02-19Z

System Information

Client und Server: Fedora 31 mit XFS als Dateisystem
Minio-Version 2020-01-25T02:50:51Z

community medium stale

Hilfreichster Kommentar

Mit --overwrite und --preserve:

$ mc mb myminio/mybucket
Bucket created successfully `myminio/mybucket`.

$ echo one > testdir/testfile.txt

$ cat testdir/testfile.txt 
one

$ mc mirror --overwrite --preserve testdir myminio/mybucket 
...estfile.txt:  4 B / 4 B ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 283 B/s 0s

$ mc cat myminio/mybucket/testfile.txt
one

$ echo two > testdir/testfile.txt

$ cat testdir/testfile.txt 
two

$ mc mirror --overwrite --preserve testdir myminio/mybucket 
 0 B / ? ┃░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓┃ 0s

$ mc cat myminio/mybucket/testfile.txt
one

Alle 12 Kommentare

Mit --overwrite und --preserve:

$ mc mb myminio/mybucket
Bucket created successfully `myminio/mybucket`.

$ echo one > testdir/testfile.txt

$ cat testdir/testfile.txt 
one

$ mc mirror --overwrite --preserve testdir myminio/mybucket 
...estfile.txt:  4 B / 4 B ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 283 B/s 0s

$ mc cat myminio/mybucket/testfile.txt
one

$ echo two > testdir/testfile.txt

$ cat testdir/testfile.txt 
two

$ mc mirror --overwrite --preserve testdir myminio/mybucket 
 0 B / ? ┃░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓┃ 0s

$ mc cat myminio/mybucket/testfile.txt
one

@sebschlue das ist eigentlich bekannt & erwartet. mc mirror erkennt keine Änderungen in einer Datei, wenn sich ihre Größe nicht ändert, z. B. one & two hat die gleiche Länge.

@vadmeste Was ist die Einschränkung, die dies verursacht? Es scheint bestenfalls unbequem.

@vadmeste Was ist die Einschränkung, die dies verursacht? Es scheint bestenfalls unbequem.

Keine Prüfsumme auf der Serverseite gespeichert (ETag ist in einigen Fällen nicht gleich der md5-Summe des Objekts)

Im Slack-Kanal haben einige bestätigt, dass es funktionieren sollte, wenn --preserve . verwendet wird

@vadmeste Was ist die Einschränkung, die dies verursacht? Es scheint bestenfalls unbequem.

Keine Prüfsumme auf der Serverseite gespeichert (ETag ist in einigen Fällen nicht gleich der md5-Summe des Objekts)

Autsch. Das bedeutet, dass wir uns für das Erstellen von Snapshots bestimmter Dinge auf rsync verlassen müssen.
Gibt es eine Möglichkeit, harmlose Metadaten anzuhängen/zu ändern, die überprüft werden, um dies zu erzwingen? Oder sicherstellen, dass etag gleich Hash ist?

Keine Prüfsumme auf der Serverseite gespeichert (ETag ist in einigen Fällen nicht gleich der md5-Summe des Objekts)

Autsch. Das bedeutet, dass wir uns für das Erstellen von Snapshots bestimmter Dinge auf rsync verlassen müssen.
Gibt es eine Möglichkeit, harmlose Metadaten anzuhängen/zu ändern, die überprüft werden, um dies zu erzwingen? Oder sicherstellen, dass etag gleich Hash ist?

Verwenden Sie dafür rclone @seqizz, das die Prüfsumme des gesamten Inhalts berechnet - ETag ist nicht md5sum, nicht immer siehe SSE-C, Multipart usw. - und md5sum ist nicht zuverlässig viele Objekte da draußen können einfach mit derselben md5sum übereinstimmen - https: //www.mscs.dal.ca/~selinger/md5collision/ und ist anscheinend in

Es sei denn, wir können die Prüfsumme ganzer Objekte mit Techniken wie blake2b berechnen - wir müssen dies vor dem Hochladen des Inhalts berechnen, was das Hochladen erheblich verlangsamt.

rsync ist für lokale Festplatte zu Remote-Festplatte gedacht, die das Delta-Protokoll verwendet, das beide Enden für die Prüfsumme liest. Dies wäre im Falle von Objektspeicherung aufgrund von Cloud-Kosten unerwartet.

Ah, natürlich fotografiere ich nur, da ich derzeit nicht an "Cloud-Traffic-Kosten" gebunden bin :) Ich werde den rclone überprüfen. Vielen Dank.

Nur neugierig, wäre es überhaupt möglich, einen weiteren Header wie etag hinzuzufügen, der jedoch Hash für minio enthält (beim Erstellen / Ändern), ohne die Kompatibilität zu beeinträchtigen?

Nur neugierig, wäre es überhaupt möglich, einen weiteren Header wie etag hinzuzufügen, der jedoch Hash für minio enthält (beim Erstellen / Ändern), ohne die Kompatibilität zu beeinträchtigen?

Es ist definitiv möglich @seqizz, dass es sehr mc spezifisch sein wird, was bedeutet, dass wir sowieso keine Kontrolle über Ihr Speicher-Backend haben, so dass jede Zustandsänderung dort von mc nicht richtig verstanden würde.

Dies kann zu Problemen mit doppeltem Kopieren usw. führen. Es wird absichtlich weggelassen, da wir keinen kostengünstigen Weg finden konnten, dies für alle allgemeinen Anwendungsfälle geeignet zu machen.

Kann dieses Thema dann geschlossen werden?

IMHO muss dies klarer dokumentiert werden, vorzugsweise direkt im Spiegelbereich der mc-Dokumentation.
Aber ja, wenn Minio so funktioniert, klingt das nicht nach einem Bug. 👍

Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivität hatte. Es wird nach 21 Tagen geschlossen, wenn keine weitere Aktivität stattfindet. Vielen Dank für Ihre Beiträge.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen