@spinajs/fs-s3 2.0.292 → 2.0.293

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.
@@ -2,7 +2,7 @@
2
2
  /// <reference types="node" />
3
3
  /// <reference types="node" />
4
4
  import { Log } from '@spinajs/log-common';
5
- import { fs, IStat, IZipResult, FileInfoService } from '@spinajs/fs';
5
+ import { fs, IStat, IZipResult, FileInfoService, IFileInfo } from '@spinajs/fs';
6
6
  import { S3Client, S3ClientConfig } from '@aws-sdk/client-s3';
7
7
  import { Readable } from 'stream';
8
8
  export interface IS3Config {
@@ -57,7 +57,7 @@ export declare class fsS3 extends fs {
57
57
  /**
58
58
  * Write to file string or buffer
59
59
  */
60
- write(path: string, data: string | Buffer, encoding?: BufferEncoding): Promise<void>;
60
+ write(path: string, data: string | Uint8Array, encoding?: BufferEncoding): Promise<void>;
61
61
  /**
62
62
  * NOTE: append on s3 downloads file, appends to it, then uploads it again
63
63
  * so it can be slow on large files
@@ -66,7 +66,16 @@ export declare class fsS3 extends fs {
66
66
  * @param data
67
67
  * @param encoding
68
68
  */
69
- append(path: string, data: string | Buffer, encoding?: BufferEncoding): Promise<void>;
69
+ append(path: string, data: string | Uint8Array, encoding?: BufferEncoding): Promise<void>;
70
+ metadata(path: string): Promise<IFileInfo>;
71
+ /**
72
+ *
73
+ * Returns hash of file
74
+ *
75
+ * @param srcPath file to calculate hash
76
+ * @param algo optional hash alghoritm, default is md5
77
+ */
78
+ hash(path: string, algo?: string): Promise<string>;
70
79
  upload(srcPath: string, destPath?: string): Promise<void>;
71
80
  /**
72
81
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/lib/cjs/index.js CHANGED
@@ -139,6 +139,11 @@ let fsS3 = class fsS3 extends fs_1.fs {
139
139
  * Write to file string or buffer
140
140
  */
141
141
  async write(path, data, encoding) {
142
+ const fInfo = await this.FileInfo.getInfo(this.resolvePath(path));
143
+ // calculate from physycal file hash
144
+ // s3 hash gets from metadata
145
+ const shaHash = await super.hash(path, 'sha256');
146
+ delete fInfo.Raw;
142
147
  const upload = new lib_storage_1.Upload({
143
148
  client: this.S3,
144
149
  params: {
@@ -146,6 +151,11 @@ let fsS3 = class fsS3 extends fs_1.fs {
146
151
  Key: path,
147
152
  Body: data,
148
153
  ContentEncoding: encoding,
154
+ // add metadata to file
155
+ Metadata: Object.fromEntries(Object.entries({
156
+ ...fInfo,
157
+ hash: shaHash,
158
+ }).map(([key, value]) => [key, String(value)])),
149
159
  },
150
160
  });
151
161
  await upload.done();
@@ -167,14 +177,47 @@ let fsS3 = class fsS3 extends fs_1.fs {
167
177
  await this.TempFs.append(fLocal, data, encoding);
168
178
  await this.upload(fLocal, path);
169
179
  }
180
+ async metadata(path) {
181
+ const command = new client_s3_1.HeadObjectCommand({
182
+ Bucket: this.Options.bucket,
183
+ Key: path,
184
+ });
185
+ const result = await this.S3.send(command);
186
+ // NOTE:
187
+ // allow this cast, becouse s3 metadata is serialized IFileInfo struct
188
+ return result.Metadata;
189
+ }
190
+ /**
191
+ *
192
+ * Returns hash of file
193
+ *
194
+ * @param srcPath file to calculate hash
195
+ * @param algo optional hash alghoritm, default is md5
196
+ */
197
+ async hash(path, algo) {
198
+ if (algo) {
199
+ throw new exceptions_1.InvalidArgument(`Hash alghoritm is not supported in s3 filesystem`);
200
+ }
201
+ const command = new client_s3_1.HeadObjectCommand({
202
+ Bucket: this.Options.bucket,
203
+ Key: path,
204
+ });
205
+ const result = await this.S3.send(command);
206
+ return result.Metadata['hash'];
207
+ }
170
208
  async upload(srcPath, destPath) {
171
209
  if (!(0, fs_2.existsSync)(srcPath)) {
172
210
  throw new exceptions_1.IOFail(`file ${srcPath} does not exists`);
173
211
  }
174
212
  const dPath = destPath ?? (0, path_1.basename)(srcPath);
175
213
  const rStream = (0, fs_2.createReadStream)(srcPath);
176
- const hash = await this.hash(srcPath, 'md5');
214
+ // calculate from physycal file hash
215
+ // s3 hash gets from metadata
216
+ const hash = await super.hash(srcPath, 'md5');
217
+ const shaHash = await super.hash(srcPath, 'sha256');
177
218
  const fInfo = await this.FileInfo.getInfo(this.resolvePath(srcPath));
219
+ // delete raw information from exif
220
+ delete fInfo.Raw;
178
221
  const upload = new lib_storage_1.Upload({
179
222
  client: this.S3,
180
223
  params: {
@@ -184,7 +227,10 @@ let fsS3 = class fsS3 extends fs_1.fs {
184
227
  // content md5 header is always base64 encoded
185
228
  ContentMD5: Buffer.from(hash, 'hex').toString('base64'),
186
229
  // convert all metadata values to string, and back to object with key-value pair of strings
187
- Metadata: Object.fromEntries(Object.entries(fInfo).map(([key, value]) => [key, String(value)])),
230
+ Metadata: Object.fromEntries(Object.entries({
231
+ ...fInfo,
232
+ hash: shaHash,
233
+ }).map(([key, value]) => [key, String(value)])),
188
234
  },
189
235
  });
190
236
  await upload.done();
@@ -235,7 +281,8 @@ let fsS3 = class fsS3 extends fs_1.fs {
235
281
  return true;
236
282
  }
237
283
  async dirExists() {
238
- throw new exceptions_1.IOFail('Method not implemented, s3 does not support directories');
284
+ // always true, s3 does not have concept od directories
285
+ return Promise.resolve(true);
239
286
  }
240
287
  /**
241
288
  * Copy file to another location
@@ -291,10 +338,14 @@ let fsS3 = class fsS3 extends fs_1.fs {
291
338
  *
292
339
  */
293
340
  async mkdir() {
294
- throw new exceptions_1.IOFail('Method not implemented, s3 does not support directories');
341
+ // some users makes dir if not exists in fs
342
+ // as s3 does not make use of directories always return true
343
+ return Promise.resolve();
295
344
  }
296
345
  async isDir(_path) {
297
- throw new exceptions_1.IOFail('Method not implemented, s3 does not support directories');
346
+ // some users makes dir if not exists in fs
347
+ // as s3 does not make use of directories always return false for simplicity
348
+ return Promise.resolve(false);
298
349
  }
299
350
  /**
300
351
  * Returns file statistics, not all fields may be accesible
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  /// <reference types="node" resolution-mode="require"/>
3
3
  /// <reference types="node" resolution-mode="require"/>
4
4
  import { Log } from '@spinajs/log-common';
5
- import { fs, IStat, IZipResult, FileInfoService } from '@spinajs/fs';
5
+ import { fs, IStat, IZipResult, FileInfoService, IFileInfo } from '@spinajs/fs';
6
6
  import { S3Client, S3ClientConfig } from '@aws-sdk/client-s3';
7
7
  import { Readable } from 'stream';
8
8
  export interface IS3Config {
@@ -57,7 +57,7 @@ export declare class fsS3 extends fs {
57
57
  /**
58
58
  * Write to file string or buffer
59
59
  */
60
- write(path: string, data: string | Buffer, encoding?: BufferEncoding): Promise<void>;
60
+ write(path: string, data: string | Uint8Array, encoding?: BufferEncoding): Promise<void>;
61
61
  /**
62
62
  * NOTE: append on s3 downloads file, appends to it, then uploads it again
63
63
  * so it can be slow on large files
@@ -66,7 +66,16 @@ export declare class fsS3 extends fs {
66
66
  * @param data
67
67
  * @param encoding
68
68
  */
69
- append(path: string, data: string | Buffer, encoding?: BufferEncoding): Promise<void>;
69
+ append(path: string, data: string | Uint8Array, encoding?: BufferEncoding): Promise<void>;
70
+ metadata(path: string): Promise<IFileInfo>;
71
+ /**
72
+ *
73
+ * Returns hash of file
74
+ *
75
+ * @param srcPath file to calculate hash
76
+ * @param algo optional hash alghoritm, default is md5
77
+ */
78
+ hash(path: string, algo?: string): Promise<string>;
70
79
  upload(srcPath: string, destPath?: string): Promise<void>;
71
80
  /**
72
81
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/lib/mjs/index.js CHANGED
@@ -14,7 +14,7 @@ import { S3Client, HeadObjectCommand, CopyObjectCommand, DeleteObjectCommand, Li
14
14
  import { Upload } from '@aws-sdk/lib-storage';
15
15
  import { Config } from '@spinajs/configuration';
16
16
  import path, { basename } from 'path';
17
- import { IOFail, MethodNotImplemented } from '@spinajs/exceptions';
17
+ import { InvalidArgument, IOFail, MethodNotImplemented } from '@spinajs/exceptions';
18
18
  import { createReadStream, existsSync } from 'fs';
19
19
  import { DateTime } from 'luxon';
20
20
  import { Readable } from 'stream';
@@ -110,6 +110,11 @@ let fsS3 = class fsS3 extends fs {
110
110
  * Write to file string or buffer
111
111
  */
112
112
  async write(path, data, encoding) {
113
+ const fInfo = await this.FileInfo.getInfo(this.resolvePath(path));
114
+ // calculate from physycal file hash
115
+ // s3 hash gets from metadata
116
+ const shaHash = await super.hash(path, 'sha256');
117
+ delete fInfo.Raw;
113
118
  const upload = new Upload({
114
119
  client: this.S3,
115
120
  params: {
@@ -117,6 +122,11 @@ let fsS3 = class fsS3 extends fs {
117
122
  Key: path,
118
123
  Body: data,
119
124
  ContentEncoding: encoding,
125
+ // add metadata to file
126
+ Metadata: Object.fromEntries(Object.entries({
127
+ ...fInfo,
128
+ hash: shaHash,
129
+ }).map(([key, value]) => [key, String(value)])),
120
130
  },
121
131
  });
122
132
  await upload.done();
@@ -138,14 +148,47 @@ let fsS3 = class fsS3 extends fs {
138
148
  await this.TempFs.append(fLocal, data, encoding);
139
149
  await this.upload(fLocal, path);
140
150
  }
151
+ async metadata(path) {
152
+ const command = new HeadObjectCommand({
153
+ Bucket: this.Options.bucket,
154
+ Key: path,
155
+ });
156
+ const result = await this.S3.send(command);
157
+ // NOTE:
158
+ // allow this cast, becouse s3 metadata is serialized IFileInfo struct
159
+ return result.Metadata;
160
+ }
161
+ /**
162
+ *
163
+ * Returns hash of file
164
+ *
165
+ * @param srcPath file to calculate hash
166
+ * @param algo optional hash alghoritm, default is md5
167
+ */
168
+ async hash(path, algo) {
169
+ if (algo) {
170
+ throw new InvalidArgument(`Hash alghoritm is not supported in s3 filesystem`);
171
+ }
172
+ const command = new HeadObjectCommand({
173
+ Bucket: this.Options.bucket,
174
+ Key: path,
175
+ });
176
+ const result = await this.S3.send(command);
177
+ return result.Metadata['hash'];
178
+ }
141
179
  async upload(srcPath, destPath) {
142
180
  if (!existsSync(srcPath)) {
143
181
  throw new IOFail(`file ${srcPath} does not exists`);
144
182
  }
145
183
  const dPath = destPath ?? basename(srcPath);
146
184
  const rStream = createReadStream(srcPath);
147
- const hash = await this.hash(srcPath, 'md5');
185
+ // calculate from physycal file hash
186
+ // s3 hash gets from metadata
187
+ const hash = await super.hash(srcPath, 'md5');
188
+ const shaHash = await super.hash(srcPath, 'sha256');
148
189
  const fInfo = await this.FileInfo.getInfo(this.resolvePath(srcPath));
190
+ // delete raw information from exif
191
+ delete fInfo.Raw;
149
192
  const upload = new Upload({
150
193
  client: this.S3,
151
194
  params: {
@@ -155,7 +198,10 @@ let fsS3 = class fsS3 extends fs {
155
198
  // content md5 header is always base64 encoded
156
199
  ContentMD5: Buffer.from(hash, 'hex').toString('base64'),
157
200
  // convert all metadata values to string, and back to object with key-value pair of strings
158
- Metadata: Object.fromEntries(Object.entries(fInfo).map(([key, value]) => [key, String(value)])),
201
+ Metadata: Object.fromEntries(Object.entries({
202
+ ...fInfo,
203
+ hash: shaHash,
204
+ }).map(([key, value]) => [key, String(value)])),
159
205
  },
160
206
  });
161
207
  await upload.done();
@@ -206,7 +252,8 @@ let fsS3 = class fsS3 extends fs {
206
252
  return true;
207
253
  }
208
254
  async dirExists() {
209
- throw new IOFail('Method not implemented, s3 does not support directories');
255
+ // always true, s3 does not have concept od directories
256
+ return Promise.resolve(true);
210
257
  }
211
258
  /**
212
259
  * Copy file to another location
@@ -262,10 +309,14 @@ let fsS3 = class fsS3 extends fs {
262
309
  *
263
310
  */
264
311
  async mkdir() {
265
- throw new IOFail('Method not implemented, s3 does not support directories');
312
+ // some users makes dir if not exists in fs
313
+ // as s3 does not make use of directories always return true
314
+ return Promise.resolve();
266
315
  }
267
316
  async isDir(_path) {
268
- throw new IOFail('Method not implemented, s3 does not support directories');
317
+ // some users makes dir if not exists in fs
318
+ // as s3 does not make use of directories always return false for simplicity
319
+ return Promise.resolve(false);
269
320
  }
270
321
  /**
271
322
  * Returns file statistics, not all fields may be accesible
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}