Как обновить метаданные объекта в 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, чтобы увеличить срок действия файла без повторной загрузки?