1
0
Fork 0
mirror of https://github.com/immich-app/immich.git synced 2025-01-01 08:31:59 +00:00

fix(cli): upload large file with openAPI api (#5246)

* fix(cli): upload large file with openAPI

* function name

* fix: use boolean false

* chore: version bump

* fix: package-lock version

---------

Co-authored-by: Jonathan Jogenfors <jonathan@jogenfors.se>
This commit is contained in:
Alex 2023-11-21 15:09:19 -06:00 committed by GitHub
parent af1113bf9e
commit 8ff4a08a2c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 13 deletions

4
cli/package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "@immich/cli",
"version": "2.0.3",
"version": "2.0.4",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@immich/cli",
"version": "2.0.3",
"version": "2.0.4",
"license": "MIT",
"dependencies": {
"axios": "^1.6.2",

View file

@ -1,12 +1,16 @@
{
"name": "@immich/cli",
"version": "2.0.3",
"version": "2.0.4",
"description": "Command Line Interface (CLI) for Immich",
"main": "dist/index.js",
"bin": {
"immich": "./dist/src/index.js"
},
"license": "MIT",
"keywords": [
"immich",
"cli"
],
"dependencies": {
"axios": "^1.6.2",
"byte-size": "^8.1.1",
@ -77,7 +81,7 @@
},
"repository": {
"type": "git",
"url": "git+https://github.com/immich-app/immich.git",
"url": "github:immich-app/immich",
"directory": "cli"
}
}

View file

@ -11,6 +11,7 @@ import {
UserApi,
} from './open-api';
import { ApiConfiguration } from '../cores/api-configuration';
import FormData from 'form-data';
export class ImmichApi {
public userApi: UserApi;
@ -35,6 +36,7 @@ export class ImmichApi {
'x-api-key': apiKey,
},
},
formDataCtor: FormData,
});
this.userApi = new UserApi(this.config);

View file

@ -8,11 +8,11 @@ export class Asset {
readonly path: string;
readonly deviceId!: string;
assetData?: File;
assetData?: fs.ReadStream;
deviceAssetId?: string;
fileCreatedAt?: string;
fileModifiedAt?: string;
sidecarData?: File;
sidecarData?: fs.ReadStream;
sidecarPath?: string;
fileSize!: number;
albumName?: string;
@ -30,13 +30,13 @@ export class Asset {
this.fileSize = stats.size;
this.albumName = this.extractAlbumName();
this.assetData = await this.getFileObject(this.path);
this.assetData = this.getReadStream(this.path);
// TODO: doesn't xmp replace the file extension? Will need investigation
const sideCarPath = `${this.path}.xmp`;
try {
fs.accessSync(sideCarPath, fs.constants.R_OK);
this.sidecarData = await this.getFileObject(sideCarPath);
this.sidecarData = this.getReadStream(sideCarPath);
} catch (error) {}
}
@ -48,19 +48,18 @@ export class Asset {
if (!this.deviceId) throw new Error('Device id not set');
return {
assetData: this.assetData,
assetData: this.assetData as any,
deviceAssetId: this.deviceAssetId,
deviceId: this.deviceId,
fileCreatedAt: this.fileCreatedAt,
fileModifiedAt: this.fileModifiedAt,
isFavorite: false,
sidecarData: this.sidecarData,
sidecarData: this.sidecarData as any,
};
}
private async getFileObject(path: string): Promise<File> {
const buffer = await fs.promises.readFile(path);
return new File([buffer], basename(path));
private getReadStream(path: string): fs.ReadStream {
return fs.createReadStream(path);
}
async delete(): Promise<void> {