Как проверить наличие объекта в ведре? - PullRequest
0 голосов
/ 27 сентября 2019

Я хочу сохранить сгенерированные файлы в Minio .Для ключей я использовал UUID:

String uuid = UUID.randomUUID().toString();

Например, в слое сервиса у меня есть следующий метод, который помещает сгенерированный файл в некоторое ведро, но я хочу быть уверен, что объект с этим ключом несуществует еще.

@SneakyThrows
@Transactional(readOnly = true)
public String createInventoryFile(List<Long> ids, 
                                  @NonNull Workstation workstation) {
    List<String> fileNames = 
        documentService.findAllFileNamesByIdsAndWorkstation(ids, workstation);
    var uuid = UUID.randomUUID().toString();
    try (var inputStream = docFileCreator.createInventoryFile(fileNames)) {
        minioClient.putObject(
            bucketName,
            uuid, // may cause to collision
            inputStream,
            FILE_CONTENT_TYPE
        );
    }
    return uuid;
}

Предлагаемые проверки в основном "исключаются":

Как наиболее правильно проверить существование объекта в Minio?Загрузка всех объектов в память и итерация по ним, мне кажется, не является решением, поскольку объектов может быть много.

...