📋 Документация API

https://documenter.getpostman.com/view/37335008/2sA3kbgy6Y

📜 OpenAPI (Swagger)

onecell-filestorage-v2.0.specs.yaml

Breaking Changes

Изменение префикса API-эндпоинтов /v1/v2

  1. Новые эндпоинты находятся по префиксу /v2/* вместо /v1/*.
  2. Старые эндпоинты будут некоторое время поддерживать обратную совместимость, однако они помечены как deprecated и в будущем будут удалены

Удаление эндпоинтов на прямое скачивание /v1/blob/{key}/download

Следующие эндпоинты не былы перенесены во вторую версию API:

  1. GET /v1/blob/{key}/download
  2. HEAD /v1/blob/{key}/download
  3. GET /v1/blob/{key}/download.{ext}
  4. HEAD /v1/blob/{key}/download.{ext}

Для скачивания файлов всегда рекомендуется использовать pre-signed ссылки, которые позволяют скачивать файл напрямую с S3-хранилища в обход FileStorage. Для этого необходимо воспользоваться эндпоинтом /v2/blob/{key}/presigned/get или /v2/blob/presigned/get.

Прямое скачивание через эндпоинты .../download дополнительно нагружает сервис FileStorage и замедляет скорость скачивания, поэтому данный метод признан устаревшим и не будет доступным в новой версии API FileStorage.

Алгоритм скачивания файла может выглядеть следующим образом:

try {
		BlobPreSignedUrlDto preSignedUrlDto = preSignedGetUrl(key);
	
		File file = httpClient.downloadFileFromUrl(
			"GET",
			preSignedUrlDto.getPreSignedUrl(),
			targetPath
		);

    return file;
} catch (ApiException e) {
    log.error("Failed to download blob via key. fileKey={}", key, e);
    throw processErrorResponse(e);
}

Переименование эндпоинта массового получения Pre-Signed URL