mc mirror --overwrite debería detectar archivos modificados
Parece que actualmente no
$ 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 versión RELEASE.2020-01-25T03-02-19Z
Cliente y servidor: Fedora 31 con XFS como sistema de archivos
versión minio 2020-01-25T02: 50: 51Z
Con --sobrescribir y - preservar:
$ 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 esto es realmente conocido y esperado. mc mirror no detecta cambios en un archivo si su tamaño no cambia, como one
& two
tiene la misma longitud.
@vadmeste ¿Cuál es la limitación que provoca esto? Parece inconveniente en el mejor de los casos.
@vadmeste ¿Cuál es la limitación que provoca esto? Parece inconveniente en el mejor de los casos.
No hay suma de comprobación almacenada en el lado del servidor (ETag no es igual a la suma md5 del objeto en algunos casos)
En el canal de Slack, algunos confirmaron que debería funcionar cuando se usa --preserve
@vadmeste ¿Cuál es la limitación que provoca esto? Parece inconveniente en el mejor de los casos.
No hay suma de comprobación almacenada en el lado del servidor (ETag no es igual a la suma md5 del objeto en algunos casos)
Ay. Eso significa que para tomar instantáneas de ciertas cosas necesitaríamos confiar en rsync.
¿Hay alguna forma de agregar / cambiar algunos metadatos inofensivos que se verifican para forzar esto? ¿O asegurarse de que etag sea igual a hash?
No hay suma de comprobación almacenada en el lado del servidor (ETag no es igual a la suma md5 del objeto en algunos casos)
Ay. Eso significa que para tomar instantáneas de ciertas cosas necesitaríamos confiar en rsync.
¿Hay alguna forma de agregar / cambiar algunos metadatos inofensivos que se verifican para forzar esto? ¿O asegurarse de que etag sea igual a hash?
Para eso, use rclone
@seqizz que calcula la suma de comprobación de todo el contenido - ETag no es md5sum, no siempre ve SSE-C, Multipart, etc. - y md5sum no es confiable, muchos objetos simplemente pueden coincidir con el mismo md5sum - https: //www.mscs.dal.ca/~selinger/md5collision/ y aparentemente es bastante común a gran escala.
A menos que, por supuesto, podamos calcular la suma de comprobación de objetos completos utilizando técnicas como blake2b; necesitamos calcular esto antes de cargar el contenido, lo que ralentiza significativamente el que va a cargar.
rsync está diseñado para un disco local a un disco remoto usando el protocolo delta que lee ambos extremos para la suma de verificación, esto sería inesperado en el caso del almacenamiento de objetos, debido a los costos de la nube.
Ah, por supuesto, solo estoy disparando gratis ya que actualmente no estoy limitado por los "costos del tráfico en la nube" :) Revisaré el rclone. Gracias.
Solo por curiosidad, ¿sería posible agregar otro encabezado como etag pero que contenga hash para minio (al crear / modificar), sin romper la compatibilidad?
Solo por curiosidad, ¿sería posible agregar otro encabezado como etag pero que contenga hash para minio (al crear / modificar), sin romper la compatibilidad?
Definitivamente es posible que @seqizz sea muy mc
específico, lo que significa que no tenemos control sobre su backend de almacenamiento de todos modos, por lo que cualquier cambio de estado allí no sería entendido correctamente por mc
.
esto puede dar lugar a problemas de copia doble, etc., como por ejemplo, se omite a propósito, ya que no pudimos encontrar una manera rentable de hacerlo de manera adecuada para todos los casos de uso generalizados.
Entonces, ¿se puede resolver este problema?
En mi humilde opinión, esto debe documentarse con más claridad, preferiblemente en la sección espejo de la documentación de mc directamente.
Pero sí, si así es como funciona minio, no suena como un error. 👍
Este problema se ha marcado automáticamente como obsoleto porque no ha tenido actividad reciente. Se cerrará después de 21 días si no se produce más actividad. Gracias por sus aportaciones.
Comentario más útil
Con --sobrescribir y - preservar: