Является ли синхронизация в Amazon S3 PHP SDK / API действительно операцией синхронизации?

Amazon php sdk (http://docs.aws.amazon.com/aws-sdk-php/v3/guide/service/s3-transfer.html) операции синхронизации выполняются с использованием вышеуказанных связанных методов. Я успешно их кодировал и настраивал, но при каждом вызове метода дата последнего изменения файлов в корзине обновляется до самого последнего времени, учитывая, что файлы не были изменены локально по сравнению с предыдущим вызовом синхронизации.

Интересно, это вообще операция синхронизации или просто перезапись того, что отправлено из локального каталога?

Почему это важно, мы планируем синхронизировать файлы между сервером и S3 Bucket. Используя корзины S3 в качестве резервного хранилища, в случае каких-либо сбоев мы можем синхронизировать (корзина S3 -> сервер) обратным способом, чтобы сделать недостающие фрагменты данных доступными на нашем сервере.

Заметки:

  1. Я также попробовал это из Вот
  2. В настоящее время я использую версию 3 AWS php SDK

1

Решение

К сожалению, я считаю, что ответ нет, я также вижу полную загрузку каждого файла при использовании Transfer учебный класс.

Раньше работал, от v2 API документы:

uploadDirectory() метод клиента будет сравнивать содержимое
локальный каталог с содержимым в корзине Amazon S3 и только
перенести файлы, которые изменились.

Отлично, это то, что мы хотим!

Однако в v3 они сохранили S3Client::uploadDirectory() для совместимости API, я думаю, но это просто обертка за Transfer::promise(), который, как мы знаем, просто загружает без какой-либо синхронизации. Сохранение совместимости API, но изменение поведения таким образом выглядит как действительно плохая идея мне.

В итоге мне пришлось добавить поддержку в мой проект, чтобы использовать инструмент AWS CLI для фактической загрузки, который отлично поддерживает синхронизацию. Далеко от идеала.

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector