mirror of
https://github.com/immich-app/immich.git
synced 2025-05-24 01:12:58 -04:00
fix(server): use HTTP status OK instead of CREATED for assets (#2876)
The NGINX gzip module does not compress responses with a status of 201, which is a major issue specifically for the /api/asset/time-bucket endpoint where responses can be upwards of 5Mi. The size of the response is dramatically reduced with gzip to 500Ki in some cases. https://trac.nginx.org/nginx/ticket/471 https://trac.nginx.org/nginx/ticket/394 The signature of these endpoints should be GET rather than POST anyway, but that is a bigger discussion.
This commit is contained in:
parent
f003ff3c98
commit
f9fbf1a2a5
@ -1066,7 +1066,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"responses": {
|
"responses": {
|
||||||
"201": {
|
"200": {
|
||||||
"description": "",
|
"description": "",
|
||||||
"content": {
|
"content": {
|
||||||
"application/json": {
|
"application/json": {
|
||||||
@ -1595,7 +1595,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"responses": {
|
"responses": {
|
||||||
"201": {
|
"200": {
|
||||||
"description": "",
|
"description": "",
|
||||||
"content": {
|
"content": {
|
||||||
"application/json": {
|
"application/json": {
|
||||||
@ -1910,7 +1910,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"responses": {
|
"responses": {
|
||||||
"201": {
|
"200": {
|
||||||
"description": "",
|
"description": "",
|
||||||
"content": {
|
"content": {
|
||||||
"application/json": {
|
"application/json": {
|
||||||
|
@ -7,6 +7,7 @@ import {
|
|||||||
Header,
|
Header,
|
||||||
Headers,
|
Headers,
|
||||||
HttpCode,
|
HttpCode,
|
||||||
|
HttpStatus,
|
||||||
Param,
|
Param,
|
||||||
ParseFilePipe,
|
ParseFilePipe,
|
||||||
Patch,
|
Patch,
|
||||||
@ -111,7 +112,7 @@ export class AssetController {
|
|||||||
|
|
||||||
const responseDto = await this.assetService.uploadFile(authUser, dto, file, livePhotoFile, sidecarFile);
|
const responseDto = await this.assetService.uploadFile(authUser, dto, file, livePhotoFile, sidecarFile);
|
||||||
if (responseDto.duplicate) {
|
if (responseDto.duplicate) {
|
||||||
res.status(200);
|
res.status(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
return responseDto;
|
return responseDto;
|
||||||
@ -193,6 +194,7 @@ export class AssetController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Post('/search')
|
@Post('/search')
|
||||||
|
@HttpCode(HttpStatus.OK)
|
||||||
searchAsset(
|
searchAsset(
|
||||||
@AuthUser() authUser: AuthUserDto,
|
@AuthUser() authUser: AuthUserDto,
|
||||||
@Body(ValidationPipe) dto: SearchAssetDto,
|
@Body(ValidationPipe) dto: SearchAssetDto,
|
||||||
@ -201,6 +203,7 @@ export class AssetController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Post('/count-by-time-bucket')
|
@Post('/count-by-time-bucket')
|
||||||
|
@HttpCode(HttpStatus.OK)
|
||||||
getAssetCountByTimeBucket(
|
getAssetCountByTimeBucket(
|
||||||
@AuthUser() authUser: AuthUserDto,
|
@AuthUser() authUser: AuthUserDto,
|
||||||
@Body(ValidationPipe) dto: GetAssetCountByTimeBucketDto,
|
@Body(ValidationPipe) dto: GetAssetCountByTimeBucketDto,
|
||||||
@ -235,6 +238,7 @@ export class AssetController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Post('/time-bucket')
|
@Post('/time-bucket')
|
||||||
|
@HttpCode(HttpStatus.OK)
|
||||||
getAssetByTimeBucket(
|
getAssetByTimeBucket(
|
||||||
@AuthUser() authUser: AuthUserDto,
|
@AuthUser() authUser: AuthUserDto,
|
||||||
@Body(ValidationPipe) dto: GetAssetByTimeBucketDto,
|
@Body(ValidationPipe) dto: GetAssetByTimeBucketDto,
|
||||||
@ -284,7 +288,7 @@ export class AssetController {
|
|||||||
*/
|
*/
|
||||||
@SharedLinkRoute()
|
@SharedLinkRoute()
|
||||||
@Post('/check')
|
@Post('/check')
|
||||||
@HttpCode(200)
|
@HttpCode(HttpStatus.OK)
|
||||||
checkDuplicateAsset(
|
checkDuplicateAsset(
|
||||||
@AuthUser() authUser: AuthUserDto,
|
@AuthUser() authUser: AuthUserDto,
|
||||||
@Body(ValidationPipe) dto: CheckDuplicateAssetDto,
|
@Body(ValidationPipe) dto: CheckDuplicateAssetDto,
|
||||||
@ -296,7 +300,7 @@ export class AssetController {
|
|||||||
* Checks if multiple assets exist on the server and returns all existing - used by background backup
|
* Checks if multiple assets exist on the server and returns all existing - used by background backup
|
||||||
*/
|
*/
|
||||||
@Post('/exist')
|
@Post('/exist')
|
||||||
@HttpCode(200)
|
@HttpCode(HttpStatus.OK)
|
||||||
checkExistingAssets(
|
checkExistingAssets(
|
||||||
@AuthUser() authUser: AuthUserDto,
|
@AuthUser() authUser: AuthUserDto,
|
||||||
@Body(ValidationPipe) dto: CheckExistingAssetsDto,
|
@Body(ValidationPipe) dto: CheckExistingAssetsDto,
|
||||||
@ -308,7 +312,7 @@ export class AssetController {
|
|||||||
* Checks if assets exist by checksums
|
* Checks if assets exist by checksums
|
||||||
*/
|
*/
|
||||||
@Post('/bulk-upload-check')
|
@Post('/bulk-upload-check')
|
||||||
@HttpCode(200)
|
@HttpCode(HttpStatus.OK)
|
||||||
bulkUploadCheck(
|
bulkUploadCheck(
|
||||||
@AuthUser() authUser: AuthUserDto,
|
@AuthUser() authUser: AuthUserDto,
|
||||||
@Body(ValidationPipe) dto: AssetBulkUploadCheckDto,
|
@Body(ValidationPipe) dto: AssetBulkUploadCheckDto,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user