<p>перезапись зеркала mc в настоящее время не работает</p>

Созданный на 29 янв. 2020  ·  12Комментарии  ·  Источник: minio/mc

Ожидаемое поведение

mc mirror --overwrite должен обнаруживать измененные файлы

Фактическое поведение

Кажется, в настоящее время нет

Шаги по воспроизведению поведения

$ 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 RELEASE.2020-01-25T03-02-19Z

Системная информация

Клиент и сервер: Fedora 31 с файловой системой XFS
версия minio 2020-01-25T02: 50: 51Z

community medium stale

Самый полезный комментарий

С помощью --overwrite и --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

Все 12 Комментарий

С помощью --overwrite и --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, это действительно известно и ожидается. mc mirror не обнаруживает изменений в файле, если его размер не меняется, например one & two имеет ту же длину.

@vadmeste Какое ограничение вызывает это? В лучшем случае это кажется неудобным.

@vadmeste Какое ограничение вызывает это? В лучшем случае это кажется неудобным.

На стороне сервера не хранится контрольная сумма (в некоторых случаях ETag не равен md5sum объекта)

На канале Slack некоторые подтвердили, что он должен работать при использовании --preserve

@vadmeste Какое ограничение вызывает это? В лучшем случае это кажется неудобным.

На стороне сервера не хранится контрольная сумма (в некоторых случаях ETag не равен md5sum объекта)

Ой. Это означает, что для создания снимков некоторых вещей нам нужно будет полагаться на rsync.
Есть ли способ добавить / изменить некоторые безобидные метаданные, которые проверяются, чтобы принудительно это сделать? Или убедиться, что etag равен хешу?

На стороне сервера не хранится контрольная сумма (в некоторых случаях ETag не равен md5sum объекта)

Ой. Это означает, что для создания снимков некоторых вещей нам нужно будет полагаться на rsync.
Есть ли способ добавить / изменить некоторые безобидные метаданные, которые проверяются, чтобы принудительно это сделать? Или убедиться, что etag равен хешу?

Для этого используйте rclone @seqizz, который вычисляет контрольную сумму всего контента - ETag не md5sum, не всегда видит SSE-C, Multipart и т. Д. - и md5sum ненадежен, многие объекты могут просто соответствовать одной и той же md5sum - https: //www.mscs.dal.ca/~selinger/md5collision/ и довольно часто встречается в масштабах.

Если, конечно, мы не можем вычислить контрольную сумму целых объектов, используя такие методы, как blake2b - нам нужно вычислить ее перед загрузкой контента, что значительно замедлит это, которое вы собираетесь загружать.

rsync предназначен для локального диска на удаленный диск с использованием дельта-протокола, который считывает оба конца для получения контрольной суммы, что было бы неожиданно в случае хранилища объектов из-за затрат на облако.

Ах, конечно, просто снимаю бесплатно, т.к. на данный момент не привязан к "затратам на облачный трафик" :) Проверю rclone. Спасибо.

Просто любопытно, можно ли было бы добавить еще один заголовок, такой как etag, но содержащий хеш для minio (при создании / изменении), без нарушения совместимости?

Просто любопытно, можно ли было бы добавить еще один заголовок, такой как etag, но содержащий хеш для minio (при создании / изменении), без нарушения совместимости?

Определенно возможно @seqizz, что это будет очень специфично для mc , что означает, что мы в любом случае не контролируем ваше хранилище, поэтому любое изменение состояния там не будет должным образом понято mc .

это может привести к двойному копированию и т. д., например, к проблемам, об этом специально отказались, поскольку мы не смогли найти рентабельный способ сделать это должным образом для всех обобщенных сценариев использования.

Можно ли тогда закрыть этот вопрос?

ИМХО, это нужно более четко задокументировать, желательно прямо в разделе зеркал документации mc.
Но да, если так работает minio, это не похоже на ошибку. 👍

Эта проблема была автоматически помечена как устаревшая, поскольку в последнее время не было активности. Он будет закрыт через 21 день, если больше не будет активности. Спасибо за ваш вклад.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги