Как обновить метаданные объекта в openstack4j?

Я пытался обновить элемент метаданных X-Delete-At через ObjectStorageObjectService.updateMetadata, и он возвращает значение true.

ThreadLocal<OSClient.OSClientV2> client;
...
client.get().objectStorage().objects()
  .updateMetadata(
    ObjectLocation.create(
      getContainerName(swiftFileRef), 
      swiftFileRef.getPathInContainer()
    ),
    ImmutableMap.of("X-Delete-At","1513846696")
);

Но потом, когда я пытаюсь получить объект

client.get().objectStorage().objects()
  .get(
    ObjectLocation.create(
      getContainerName(swiftFileRef), 
      swiftFileRef.getPathInContainer()
));

я получил

java.lang.IllegalArgumentException: Multiple entries with same key: X-Delete-At=1513846696 and X-Delete-At=1513845696

Я ожидал, что этот элемент метаданных будет обновлен, как описано в документации (см. "Создание или обновление метаданных объекта"):

В дополнение к пользовательским метаданным вы можете обновить элементы метаданных системы Content-Type, Content-Encoding, Content-Disposition и X-Delete-At. Однако вы не можете обновить другие системные метаданные, такие как Content-Length или Last-Modified.

Как я могу обновить X-Delete-At, чтобы увеличить срок действия файла без повторной загрузки?

0 ответов

Другие вопросы по тегам