https://documenter.getpostman.com/view/37335008/2sA3kbgy6Y
onecell-filestorage-v2.0.specs.yaml
/v1
→ /v2
/v2/*
вместо /v1/*
./v1/blob/{key}/download
Следующие эндпоинты не былы перенесены во вторую версию API:
GET /v1/blob/{key}/download
HEAD /v1/blob/{key}/download
GET /v1/blob/{key}/download.{ext}
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);
}