@social-mail/social-mail-web-server 1.4.929 → 1.4.930
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/server/seed/seed.d.ts.map +1 -1
- package/dist/server/seed/seed.js +4 -0
- package/dist/server/seed/seed.js.map +1 -1
- package/dist/server/storage/BaseStorage.d.ts +1 -0
- package/dist/server/storage/BaseStorage.d.ts.map +1 -1
- package/dist/server/storage/BaseStorage.js.map +1 -1
- package/dist/server/storage/azure/AzureStorage.d.ts +1 -0
- package/dist/server/storage/azure/AzureStorage.d.ts.map +1 -1
- package/dist/server/storage/azure/AzureStorage.js +3 -0
- package/dist/server/storage/azure/AzureStorage.js.map +1 -1
- package/dist/server/storage/db/DbStorage.d.ts +1 -0
- package/dist/server/storage/db/DbStorage.d.ts.map +1 -1
- package/dist/server/storage/db/DbStorage.js +39 -24
- package/dist/server/storage/db/DbStorage.js.map +1 -1
- package/dist/server/storage/s3/S3Storage.d.ts +1 -0
- package/dist/server/storage/s3/S3Storage.d.ts.map +1 -1
- package/dist/server/storage/s3/S3Storage.js +6 -1
- package/dist/server/storage/s3/S3Storage.js.map +1 -1
- package/dist/server/storage/volume/VolumeStorage.d.ts +1 -0
- package/dist/server/storage/volume/VolumeStorage.d.ts.map +1 -1
- package/dist/server/storage/volume/VolumeStorage.js +7 -1
- package/dist/server/storage/volume/VolumeStorage.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/server/seed/seed.ts +6 -0
- package/src/server/storage/BaseStorage.ts +2 -0
- package/src/server/storage/azure/AzureStorage.ts +4 -0
- package/src/server/storage/db/DbStorage.ts +6 -0
- package/src/server/storage/s3/S3Storage.ts +8 -1
- package/src/server/storage/volume/VolumeStorage.ts +8 -1
package/package.json
CHANGED
package/src/server/seed/seed.ts
CHANGED
|
@@ -8,6 +8,7 @@ import seedTags from "./tags/seed-tags.js";
|
|
|
8
8
|
import DbLockContext from "../services/db-lock/DbLockContext.js";
|
|
9
9
|
import LockFile from "../storage/LockFile.js";
|
|
10
10
|
import { globalEnv } from "../../common/globalEnv.js";
|
|
11
|
+
import BaseStorage from "../storage/BaseStorage.js";
|
|
11
12
|
|
|
12
13
|
export default async function seed() {
|
|
13
14
|
|
|
@@ -17,6 +18,11 @@ export default async function seed() {
|
|
|
17
18
|
// making sure multiple workers don't interfere
|
|
18
19
|
using fl = await LockFile.lock(`seed-lock-${globalEnv.serverID}.lock`);
|
|
19
20
|
|
|
21
|
+
// verify storage...
|
|
22
|
+
const storage = scope.resolve(BaseStorage as any) as BaseStorage;
|
|
23
|
+
|
|
24
|
+
await storage.verify();
|
|
25
|
+
|
|
20
26
|
// const migrationConfig = { version: globalEnv.version };
|
|
21
27
|
|
|
22
28
|
const version = globalEnv.version;
|
|
@@ -39,6 +39,8 @@ export default abstract class BaseStorage {
|
|
|
39
39
|
@Inject
|
|
40
40
|
private diskCache: DiskCacheService;
|
|
41
41
|
|
|
42
|
+
abstract verify(): Promise<any>;
|
|
43
|
+
|
|
42
44
|
abstract createFile(cloudPath: string, file: LocalFile): Promise<string>;
|
|
43
45
|
|
|
44
46
|
abstract deleteFile(cloudPath: string): Promise<void>;
|
|
@@ -20,6 +20,10 @@ export default class AzureStorage extends BaseStorage {
|
|
|
20
20
|
this.container = client.getContainerClient(container);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
async verify() {
|
|
24
|
+
await this.container.getProperties();
|
|
25
|
+
}
|
|
26
|
+
|
|
23
27
|
async createFile(cloudPath: string, file: LocalFile) {
|
|
24
28
|
const body = file.openReadStream();
|
|
25
29
|
const md5 = await this.cryptoService.md5Buffer(file.openRead(), "base64");
|
|
@@ -16,6 +16,12 @@ let seeded = false;
|
|
|
16
16
|
|
|
17
17
|
export default class DbStorage extends BaseStorage {
|
|
18
18
|
|
|
19
|
+
async verify() {
|
|
20
|
+
using scope = await this.createScope();
|
|
21
|
+
const db = scope.resolve(DbStorageContext);
|
|
22
|
+
await db.dbFiles.asQuery().first();
|
|
23
|
+
}
|
|
24
|
+
|
|
19
25
|
async createFile(cloudPath: string, file: LocalFile): Promise<string> {
|
|
20
26
|
|
|
21
27
|
const sha256 = await this.cryptoService.hashBuffer(file.openRead(), "base64");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Readable, Stream } from "stream";
|
|
2
2
|
import BaseStorage from "../BaseStorage.js";
|
|
3
3
|
|
|
4
|
-
import { S3Client, GetObjectCommand, PutObjectCommand, DeleteObjectCommand } from "@aws-sdk/client-s3";
|
|
4
|
+
import { S3Client, GetObjectCommand, PutObjectCommand, DeleteObjectCommand, ListBucketsCommand } from "@aws-sdk/client-s3";
|
|
5
5
|
import { LocalFile } from "@entity-access/server-pages/dist/core/LocalFile.js";
|
|
6
6
|
import { globalEnv } from "../../../common/globalEnv.js";
|
|
7
7
|
|
|
@@ -28,6 +28,13 @@ export default class S3Storage extends BaseStorage {
|
|
|
28
28
|
});
|
|
29
29
|
|
|
30
30
|
}
|
|
31
|
+
|
|
32
|
+
async verify() {
|
|
33
|
+
await this.client.send(new ListBucketsCommand({
|
|
34
|
+
Bucket
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
|
|
31
38
|
async streamFile(Key: string): Promise<{ contentType: string, stream: Stream }> {
|
|
32
39
|
const r = await this.client.send(new GetObjectCommand({
|
|
33
40
|
Bucket,
|
|
@@ -2,7 +2,7 @@ import { Stream } from "stream";
|
|
|
2
2
|
import BaseStorage from "../BaseStorage.js";
|
|
3
3
|
import path from "path";
|
|
4
4
|
import { unlink, writeFile } from "fs/promises";
|
|
5
|
-
import { createReadStream, existsSync } from "fs";
|
|
5
|
+
import { createReadStream, existsSync, mkdirSync } from "fs";
|
|
6
6
|
import sleep from "../../../common/sleep.js";
|
|
7
7
|
import ensureDir, { ensureParentFolder } from "../../../common/FileApi.js";
|
|
8
8
|
import { LocalFile } from "@entity-access/server-pages/dist/core/LocalFile.js";
|
|
@@ -14,6 +14,13 @@ export default class VolumeStorage extends BaseStorage {
|
|
|
14
14
|
ensureDir(root);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
verify(): Promise<any> {
|
|
18
|
+
if(!existsSync(this.root)) {
|
|
19
|
+
mkdirSync(this.root, { recursive: true });
|
|
20
|
+
}
|
|
21
|
+
return Promise.resolve();
|
|
22
|
+
}
|
|
23
|
+
|
|
17
24
|
async createFile(cloudPath: string, file: LocalFile) {
|
|
18
25
|
const filePath = this.toFilePath(cloudPath, true);
|
|
19
26
|
await writeFile(filePath, file.openRead());
|