nestjs-r2-storage 1.2.6 → 1.3.0
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/README.md
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
**Author:** Nurul Islam Rimon
|
|
7
7
|
**GitHub:** [https://github.com/nurulislamrimon/nestjs-r2-storage](https://github.com/nurulislamrimon/nestjs-r2-storage)
|
|
8
8
|
|
|
9
|
+

|
|
10
|
+
|
|
9
11
|
Production-ready NestJS module for Cloudflare R2 object storage management.
|
|
10
12
|
|
|
11
13
|
## Features
|
|
@@ -25,11 +27,11 @@ Cloudflare R2 does NOT enforce ACLs like AWS S3 - the R2 API ignores ACL headers
|
|
|
25
27
|
|
|
26
28
|
### Modes
|
|
27
29
|
|
|
28
|
-
| Mode
|
|
29
|
-
|
|
30
|
-
| `private`
|
|
31
|
-
| `public-read` | Allowed
|
|
32
|
-
| `hybrid`
|
|
30
|
+
| Mode | Public URLs | Signed URLs | Use Case |
|
|
31
|
+
| ------------- | ----------- | ----------- | ------------------------------------- |
|
|
32
|
+
| `private` | Not allowed | Required | Maximum security - only signed access |
|
|
33
|
+
| `public-read` | Allowed | Optional | Public files (e.g., static assets) |
|
|
34
|
+
| `hybrid` | Allowed | Allowed | Mixed content (default) |
|
|
33
35
|
|
|
34
36
|
### Private Mode
|
|
35
37
|
|
|
@@ -38,12 +40,13 @@ Only presigned URLs are allowed. Public URL generation throws `AccessModeError`.
|
|
|
38
40
|
```typescript
|
|
39
41
|
R2StorageModule.forRoot({
|
|
40
42
|
// ... other options
|
|
41
|
-
accessMode:
|
|
42
|
-
publicUrlBase:
|
|
43
|
+
accessMode: "private",
|
|
44
|
+
publicUrlBase: "https://cdn.example.com", // still configured but not used
|
|
43
45
|
});
|
|
44
46
|
```
|
|
45
47
|
|
|
46
48
|
Response in private mode:
|
|
49
|
+
|
|
47
50
|
```json
|
|
48
51
|
{
|
|
49
52
|
"uploadUrl": "https://signed-url...",
|
|
@@ -58,8 +61,8 @@ Public URLs are generated. Signed URLs are optional.
|
|
|
58
61
|
```typescript
|
|
59
62
|
R2StorageModule.forRoot({
|
|
60
63
|
// ... other options
|
|
61
|
-
accessMode:
|
|
62
|
-
publicUrlBase:
|
|
64
|
+
accessMode: "public-read",
|
|
65
|
+
publicUrlBase: "https://cdn.example.com",
|
|
63
66
|
});
|
|
64
67
|
```
|
|
65
68
|
|
|
@@ -70,7 +73,7 @@ Both public and signed access are allowed for backward compatibility.
|
|
|
70
73
|
```typescript
|
|
71
74
|
R2StorageModule.forRoot({
|
|
72
75
|
// ... other options
|
|
73
|
-
accessMode:
|
|
76
|
+
accessMode: "hybrid", // default
|
|
74
77
|
});
|
|
75
78
|
```
|
|
76
79
|
|
|
@@ -80,8 +83,8 @@ R2StorageModule.forRoot({
|
|
|
80
83
|
|
|
81
84
|
```typescript
|
|
82
85
|
// app.module.ts
|
|
83
|
-
import { Module } from
|
|
84
|
-
import { R2StorageModule } from
|
|
86
|
+
import { Module } from "@nestjs/common";
|
|
87
|
+
import { R2StorageModule } from "nestjs-r2-storage";
|
|
85
88
|
|
|
86
89
|
@Module({
|
|
87
90
|
imports: [
|
|
@@ -90,7 +93,7 @@ import { R2StorageModule } from 'nestjs-r2-storage';
|
|
|
90
93
|
accessKeyId: process.env.R2_ACCESS_KEY,
|
|
91
94
|
secretAccessKey: process.env.R2_SECRET_KEY,
|
|
92
95
|
bucketName: process.env.R2_BUCKET,
|
|
93
|
-
region:
|
|
96
|
+
region: "auto",
|
|
94
97
|
publicUrlBase: `https://${process.env.R2_ACCOUNT_ID}.r2.cloudflarestorage.com/${process.env.R2_BUCKET}`,
|
|
95
98
|
signedUrlExpiry: 3600,
|
|
96
99
|
}),
|
|
@@ -102,8 +105,12 @@ export class AppModule {}
|
|
|
102
105
|
### 2. Use in Your Service
|
|
103
106
|
|
|
104
107
|
```typescript
|
|
105
|
-
import { Injectable } from
|
|
106
|
-
import {
|
|
108
|
+
import { Injectable } from "@nestjs/common";
|
|
109
|
+
import {
|
|
110
|
+
PhotoManagerService,
|
|
111
|
+
PhotoField,
|
|
112
|
+
CloudflareService,
|
|
113
|
+
} from "nestjs-r2-storage";
|
|
107
114
|
|
|
108
115
|
@Injectable()
|
|
109
116
|
export class ProductService {
|
|
@@ -114,12 +121,19 @@ export class ProductService {
|
|
|
114
121
|
|
|
115
122
|
async createProduct(payload: any) {
|
|
116
123
|
const photoFields: PhotoField[] = [
|
|
117
|
-
{ field:
|
|
118
|
-
{
|
|
124
|
+
{ field: "image", urlField: "image_url", sizeField: "image_size" },
|
|
125
|
+
{
|
|
126
|
+
field: "gallery[].photo",
|
|
127
|
+
urlField: "photo_url",
|
|
128
|
+
sizeField: "photo_size",
|
|
129
|
+
},
|
|
119
130
|
];
|
|
120
131
|
|
|
121
|
-
const result = await this.photoManager.createObjectWithPhotos(
|
|
122
|
-
|
|
132
|
+
const result = await this.photoManager.createObjectWithPhotos(
|
|
133
|
+
payload,
|
|
134
|
+
photoFields,
|
|
135
|
+
);
|
|
136
|
+
|
|
123
137
|
// Return upload URLs to client for direct upload
|
|
124
138
|
return {
|
|
125
139
|
product: result.updatedPayload,
|
|
@@ -130,10 +144,10 @@ export class ProductService {
|
|
|
130
144
|
|
|
131
145
|
async getProduct(id: string) {
|
|
132
146
|
const product = await this.findProduct(id);
|
|
133
|
-
|
|
147
|
+
|
|
134
148
|
const photoFields: PhotoField[] = [
|
|
135
|
-
{ field:
|
|
136
|
-
{ field:
|
|
149
|
+
{ field: "image", urlField: "image_url" },
|
|
150
|
+
{ field: "gallery[].photo", urlField: "photo_url" },
|
|
137
151
|
];
|
|
138
152
|
|
|
139
153
|
return this.photoManager.appendPhotoUrls(product, photoFields);
|
|
@@ -141,13 +155,17 @@ export class ProductService {
|
|
|
141
155
|
|
|
142
156
|
async updateProduct(id: string, payload: any) {
|
|
143
157
|
const existing = await this.findProduct(id);
|
|
144
|
-
|
|
158
|
+
|
|
145
159
|
const photoFields: PhotoField[] = [
|
|
146
|
-
{ field:
|
|
160
|
+
{ field: "image", urlField: "image_url", sizeField: "image_size" },
|
|
147
161
|
];
|
|
148
162
|
|
|
149
|
-
const result = await this.photoManager.updateObjectWithPhotos(
|
|
150
|
-
|
|
163
|
+
const result = await this.photoManager.updateObjectWithPhotos(
|
|
164
|
+
payload,
|
|
165
|
+
existing,
|
|
166
|
+
photoFields,
|
|
167
|
+
);
|
|
168
|
+
|
|
151
169
|
return {
|
|
152
170
|
product: result.updatedPayload,
|
|
153
171
|
uploadUrls: result.uploadUrls,
|
|
@@ -158,9 +176,9 @@ export class ProductService {
|
|
|
158
176
|
|
|
159
177
|
async deleteProduct(id: string) {
|
|
160
178
|
const product = await this.findProduct(id);
|
|
161
|
-
|
|
179
|
+
|
|
162
180
|
const photoFields: PhotoField[] = [
|
|
163
|
-
{ field:
|
|
181
|
+
{ field: "image", urlField: "image_url" },
|
|
164
182
|
];
|
|
165
183
|
|
|
166
184
|
await this.photoManager.deletePhotosFromObject(product, photoFields);
|
|
@@ -177,16 +195,16 @@ Direct R2 operations.
|
|
|
177
195
|
|
|
178
196
|
```typescript
|
|
179
197
|
// Generate upload URL
|
|
180
|
-
const uploadUrl = await cloudflare.getUploadUrl(
|
|
198
|
+
const uploadUrl = await cloudflare.getUploadUrl("avatar.png", 1024000);
|
|
181
199
|
|
|
182
200
|
// Generate download URL
|
|
183
|
-
const downloadUrl = await cloudflare.getDownloadUrl(
|
|
201
|
+
const downloadUrl = await cloudflare.getDownloadUrl("uploads/avatar_123.png");
|
|
184
202
|
|
|
185
203
|
// Delete file
|
|
186
|
-
await cloudflare.deleteFile(
|
|
204
|
+
await cloudflare.deleteFile("uploads/avatar.png");
|
|
187
205
|
|
|
188
206
|
// Check if file exists
|
|
189
|
-
const exists = await cloudflare.fileExists(
|
|
207
|
+
const exists = await cloudflare.fileExists("uploads/avatar.png");
|
|
190
208
|
```
|
|
191
209
|
|
|
192
210
|
### Presigned URL Security
|
|
@@ -198,7 +216,7 @@ The module uses secure presigned URL generation:
|
|
|
198
216
|
- **Minimal signing** - Only signs `host` and `content-type` headers
|
|
199
217
|
|
|
200
218
|
```typescript
|
|
201
|
-
const result = await cloudflare.getUploadUrl(
|
|
219
|
+
const result = await cloudflare.getUploadUrl("avatar.png", 1024000);
|
|
202
220
|
|
|
203
221
|
// result = {
|
|
204
222
|
// uploadUrl: "https://signed-url...",
|
|
@@ -219,28 +237,27 @@ Adds signed URLs to response objects.
|
|
|
219
237
|
|
|
220
238
|
```typescript
|
|
221
239
|
const photoFields: PhotoField[] = [
|
|
222
|
-
{ field:
|
|
223
|
-
{ field:
|
|
224
|
-
{ field:
|
|
225
|
-
{ field:
|
|
240
|
+
{ field: "avatar", urlField: "avatar_url" },
|
|
241
|
+
{ field: "shop.logo", urlField: "logo_url" },
|
|
242
|
+
{ field: "products[].image", urlField: "image_url" },
|
|
243
|
+
{ field: "gallery[].photo", urlField: "photo_url" },
|
|
226
244
|
];
|
|
227
245
|
|
|
228
246
|
const result = await photoManager.appendPhotoUrls(product, photoFields);
|
|
229
247
|
```
|
|
230
248
|
|
|
231
249
|
Input:
|
|
250
|
+
|
|
232
251
|
```json
|
|
233
252
|
{
|
|
234
253
|
"name": "Laptop",
|
|
235
254
|
"image": "laptop.png",
|
|
236
|
-
"gallery": [
|
|
237
|
-
{ "photo": "photo1.jpg" },
|
|
238
|
-
{ "photo": "photo2.jpg" }
|
|
239
|
-
]
|
|
255
|
+
"gallery": [{ "photo": "photo1.jpg" }, { "photo": "photo2.jpg" }]
|
|
240
256
|
}
|
|
241
257
|
```
|
|
242
258
|
|
|
243
259
|
Output:
|
|
260
|
+
|
|
244
261
|
```json
|
|
245
262
|
{
|
|
246
263
|
"name": "Laptop",
|
|
@@ -264,13 +281,13 @@ const payload = {
|
|
|
264
281
|
image_size: 42000,
|
|
265
282
|
gallery: [
|
|
266
283
|
{ photo: "photo1.jpg", photo_size: 10000 },
|
|
267
|
-
{ photo: "photo2.jpg", photo_size: 15000 }
|
|
268
|
-
]
|
|
284
|
+
{ photo: "photo2.jpg", photo_size: 15000 },
|
|
285
|
+
],
|
|
269
286
|
};
|
|
270
287
|
|
|
271
288
|
const photoFields: PhotoField[] = [
|
|
272
|
-
{ field:
|
|
273
|
-
{ field:
|
|
289
|
+
{ field: "image", sizeField: "image_size" },
|
|
290
|
+
{ field: "gallery[].photo", sizeField: "gallery[].photo_size" },
|
|
274
291
|
];
|
|
275
292
|
|
|
276
293
|
const result = await photoManager.createObjectWithPhotos(payload, photoFields);
|
|
@@ -284,21 +301,23 @@ const result = await photoManager.createObjectWithPhotos(payload, photoFields);
|
|
|
284
301
|
|
|
285
302
|
#### updateObjectWithPhotos()
|
|
286
303
|
|
|
287
|
-
Updates object with new photos
|
|
304
|
+
Updates an existing object with new photos. Only deletes old photos when:
|
|
305
|
+
- The field is included in the new payload
|
|
306
|
+
- The new photo has a different filename than the existing one
|
|
288
307
|
|
|
289
308
|
```typescript
|
|
290
309
|
const result = await photoManager.updateObjectWithPhotos(
|
|
291
|
-
newPayload,
|
|
292
|
-
existingObject,
|
|
310
|
+
newPayload, // payload with new photo data
|
|
311
|
+
existingObject, // existing object with old photo data
|
|
293
312
|
photoFields,
|
|
294
313
|
);
|
|
295
314
|
|
|
296
315
|
// result = {
|
|
297
|
-
// updatedPayload: { ... },
|
|
298
|
-
// uploadUrls: [{ field, fileKey, uploadUrl, publicUrl }],
|
|
299
|
-
// storageIncrease: 1000,
|
|
300
|
-
// storageDecrease: 500,
|
|
301
|
-
// deletedFiles: ['old-file.png']
|
|
316
|
+
// updatedPayload: { ... }, // merged payload
|
|
317
|
+
// uploadUrls: [{ field, fileKey, uploadUrl, publicUrl }], // new upload URLs
|
|
318
|
+
// storageIncrease: 1000, // new files size
|
|
319
|
+
// storageDecrease: 500, // deleted files size
|
|
320
|
+
// deletedFiles: ['old-file.png'] // files that were deleted
|
|
302
321
|
// }
|
|
303
322
|
```
|
|
304
323
|
|
|
@@ -335,26 +354,26 @@ variants[].images[] -> variants[0].images[0], variants[0].images[1], ...
|
|
|
335
354
|
|
|
336
355
|
### Supported Patterns
|
|
337
356
|
|
|
338
|
-
| Path
|
|
339
|
-
|
|
340
|
-
| `shop.logo`
|
|
341
|
-
| `user.profile.image`
|
|
342
|
-
| `gallery[].photo`
|
|
343
|
-
| `products[].images[]`
|
|
357
|
+
| Path | Description |
|
|
358
|
+
| -------------------------- | ------------------------------- |
|
|
359
|
+
| `shop.logo` | Simple nested field |
|
|
360
|
+
| `user.profile.image` | Deeply nested with dots |
|
|
361
|
+
| `gallery[].photo` | Array of objects |
|
|
362
|
+
| `products[].images[]` | Array containing array |
|
|
344
363
|
| `variants[0].images[].url` | Indexed array with nested array |
|
|
345
364
|
|
|
346
365
|
## Configuration Options
|
|
347
366
|
|
|
348
|
-
| Option
|
|
349
|
-
|
|
350
|
-
| `endpoint`
|
|
351
|
-
| `accessKeyId`
|
|
352
|
-
| `secretAccessKey` | string | Yes
|
|
353
|
-
| `bucketName`
|
|
354
|
-
| `region`
|
|
355
|
-
| `publicUrlBase`
|
|
356
|
-
| `signedUrlExpiry` | number | No
|
|
357
|
-
| `accessMode`
|
|
367
|
+
| Option | Type | Required | Description |
|
|
368
|
+
| ----------------- | ------ | -------- | ------------------------------------------------------------------- |
|
|
369
|
+
| `endpoint` | string | Yes | R2 endpoint URL |
|
|
370
|
+
| `accessKeyId` | string | Yes | R2 access key ID |
|
|
371
|
+
| `secretAccessKey` | string | Yes | R2 secret access key |
|
|
372
|
+
| `bucketName` | string | Yes | R2 bucket name |
|
|
373
|
+
| `region` | string | No | AWS region (default: 'auto') |
|
|
374
|
+
| `publicUrlBase` | string | No | Base URL for public access |
|
|
375
|
+
| `signedUrlExpiry` | number | No | Signed URL expiry in seconds (default: 3600) |
|
|
376
|
+
| `accessMode` | string | No | Access mode: `private`, `public-read`, `hybrid` (default: `hybrid`) |
|
|
358
377
|
|
|
359
378
|
## Error Handling
|
|
360
379
|
|
|
@@ -363,10 +382,10 @@ variants[].images[] -> variants[0].images[0], variants[0].images[1], ...
|
|
|
363
382
|
Thrown when attempting to generate public URLs in `private` access mode.
|
|
364
383
|
|
|
365
384
|
```typescript
|
|
366
|
-
import { AccessModeError } from
|
|
385
|
+
import { AccessModeError } from "nestjs-r2-storage";
|
|
367
386
|
|
|
368
387
|
try {
|
|
369
|
-
const result = await cloudflare.getUploadUrl(
|
|
388
|
+
const result = await cloudflare.getUploadUrl("file.png", 1024);
|
|
370
389
|
} catch (error) {
|
|
371
390
|
if (error instanceof AccessModeError) {
|
|
372
391
|
console.log(error.message); // "Public URL generation is not allowed in 'private' access mode..."
|
|
@@ -384,7 +403,7 @@ R2StorageModule.forRootAsync({
|
|
|
384
403
|
secretAccessKey: process.env.R2_SECRET_KEY,
|
|
385
404
|
bucketName: process.env.R2_BUCKET,
|
|
386
405
|
}),
|
|
387
|
-
})
|
|
406
|
+
});
|
|
388
407
|
```
|
|
389
408
|
|
|
390
409
|
## Changelog
|
|
@@ -173,7 +173,8 @@ let PhotoManagerService = class PhotoManagerService {
|
|
|
173
173
|
};
|
|
174
174
|
}
|
|
175
175
|
async deletePhotosFromObject(object, photoFields) {
|
|
176
|
-
const
|
|
176
|
+
const fileKeyInfos = this.extractExistingFiles(object, photoFields);
|
|
177
|
+
const fileKeys = fileKeyInfos.map((f) => f.fileKey);
|
|
177
178
|
const deletedFiles = [];
|
|
178
179
|
let totalStorageFreed = 0;
|
|
179
180
|
if (fileKeys.length === 0) {
|
|
@@ -196,9 +197,8 @@ let PhotoManagerService = class PhotoManagerService {
|
|
|
196
197
|
const requests = [];
|
|
197
198
|
for (const photoField of photoFields) {
|
|
198
199
|
const fieldValue = (0, nested_value_util_1.getNestedValue)(payload, photoField.field);
|
|
199
|
-
if (!fieldValue)
|
|
200
|
+
if (!fieldValue)
|
|
200
201
|
continue;
|
|
201
|
-
}
|
|
202
202
|
if ((0, nested_value_util_1.isArrayPath)(photoField.field)) {
|
|
203
203
|
const arrayRequests = this.extractArrayFieldUploadRequests(payload, photoField, filePrefix);
|
|
204
204
|
requests.push(...arrayRequests);
|
|
@@ -207,7 +207,10 @@ let PhotoManagerService = class PhotoManagerService {
|
|
|
207
207
|
const sizeValue = photoField.sizeField
|
|
208
208
|
? (0, nested_value_util_1.getNestedValue)(payload, photoField.sizeField)
|
|
209
209
|
: 0;
|
|
210
|
-
if (typeof fieldValue === "string" &&
|
|
210
|
+
if (typeof fieldValue === "string" &&
|
|
211
|
+
fieldValue.length > 0 &&
|
|
212
|
+
sizeValue > 0 &&
|
|
213
|
+
!fieldValue.includes("/")) {
|
|
211
214
|
requests.push({
|
|
212
215
|
field: photoField.field,
|
|
213
216
|
filename: fieldValue,
|
|
@@ -223,17 +226,15 @@ let PhotoManagerService = class PhotoManagerService {
|
|
|
223
226
|
const requests = [];
|
|
224
227
|
const { segments } = (0, nested_value_util_1.parseFieldPath)(photoField.field);
|
|
225
228
|
const lastArrayIndex = segments.findIndex((s) => s.isArray);
|
|
226
|
-
if (lastArrayIndex === -1)
|
|
229
|
+
if (lastArrayIndex === -1)
|
|
227
230
|
return requests;
|
|
228
|
-
}
|
|
229
231
|
const arrayPath = segments
|
|
230
232
|
.slice(0, lastArrayIndex + 1)
|
|
231
233
|
.map((s) => s.key)
|
|
232
234
|
.join(".");
|
|
233
235
|
const arrayValue = (0, nested_value_util_1.getNestedValue)(payload, arrayPath);
|
|
234
|
-
if (!arrayValue || !Array.isArray(arrayValue))
|
|
236
|
+
if (!arrayValue || !Array.isArray(arrayValue))
|
|
235
237
|
return requests;
|
|
236
|
-
}
|
|
237
238
|
const { key: photoKey } = segments[segments.length - 1];
|
|
238
239
|
const sizeKey = photoField.sizeField
|
|
239
240
|
? photoField.sizeField.split(".").pop()
|
|
@@ -241,22 +242,24 @@ let PhotoManagerService = class PhotoManagerService {
|
|
|
241
242
|
for (let i = 0; i < arrayValue.length; i++) {
|
|
242
243
|
const item = arrayValue[i];
|
|
243
244
|
const photoValue = item[photoKey];
|
|
244
|
-
if (!photoValue || typeof photoValue !== "string") {
|
|
245
|
-
continue;
|
|
246
|
-
}
|
|
247
245
|
const sizeValue = sizeKey ? item[sizeKey] || 0 : 0;
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
246
|
+
if (typeof photoValue === "string" &&
|
|
247
|
+
photoValue.length > 0 &&
|
|
248
|
+
sizeValue > 0 &&
|
|
249
|
+
!photoValue.includes("/")) {
|
|
250
|
+
const fieldPath = `${arrayPath}[${i}].${photoKey}`;
|
|
251
|
+
requests.push({
|
|
252
|
+
field: fieldPath,
|
|
253
|
+
filename: photoValue,
|
|
254
|
+
size: sizeValue,
|
|
255
|
+
prefix: filePrefix,
|
|
256
|
+
});
|
|
257
|
+
}
|
|
255
258
|
}
|
|
256
259
|
return requests;
|
|
257
260
|
}
|
|
258
261
|
extractExistingFiles(object, photoFields) {
|
|
259
|
-
const
|
|
262
|
+
const fileInfos = [];
|
|
260
263
|
for (const photoField of photoFields) {
|
|
261
264
|
const fieldValue = (0, nested_value_util_1.getNestedValue)(object, photoField.field);
|
|
262
265
|
if (!fieldValue) {
|
|
@@ -277,21 +280,38 @@ let PhotoManagerService = class PhotoManagerService {
|
|
|
277
280
|
continue;
|
|
278
281
|
}
|
|
279
282
|
const { key } = segments[segments.length - 1];
|
|
280
|
-
for (
|
|
283
|
+
for (let i = 0; i < arrayValue.length; i++) {
|
|
284
|
+
const item = arrayValue[i];
|
|
281
285
|
if (item && item[key] && typeof item[key] === "string") {
|
|
282
|
-
|
|
286
|
+
fileInfos.push({
|
|
287
|
+
field: `${arrayPath}[${i}].${key}`,
|
|
288
|
+
fileKey: item[key],
|
|
289
|
+
});
|
|
283
290
|
}
|
|
284
291
|
}
|
|
285
292
|
}
|
|
286
293
|
else if (typeof fieldValue === "string" && fieldValue.length > 0) {
|
|
287
|
-
|
|
294
|
+
fileInfos.push({
|
|
295
|
+
field: photoField.field,
|
|
296
|
+
fileKey: fieldValue,
|
|
297
|
+
});
|
|
288
298
|
}
|
|
289
299
|
}
|
|
290
|
-
return
|
|
300
|
+
return fileInfos;
|
|
291
301
|
}
|
|
292
302
|
determineFilesToDelete(existingFiles, newRequests) {
|
|
293
|
-
const
|
|
294
|
-
|
|
303
|
+
const filesToDelete = [];
|
|
304
|
+
for (const existing of existingFiles) {
|
|
305
|
+
const matchingRequest = newRequests.find((req) => req.field === existing.field);
|
|
306
|
+
if (!matchingRequest)
|
|
307
|
+
continue;
|
|
308
|
+
const isSame = this.normalizeFilename(matchingRequest.filename) ===
|
|
309
|
+
this.normalizeFilename(existing.fileKey);
|
|
310
|
+
if (isSame)
|
|
311
|
+
continue;
|
|
312
|
+
filesToDelete.push(existing.fileKey);
|
|
313
|
+
}
|
|
314
|
+
return filesToDelete;
|
|
295
315
|
}
|
|
296
316
|
normalizeFilename(filename) {
|
|
297
317
|
return filename.split("/").pop() || filename;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"photo-manager.service.js","sourceRoot":"","sources":["../../src/r2-storage/photo-manager.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"photo-manager.service.js","sourceRoot":"","sources":["../../src/r2-storage/photo-manager.service.ts"],"names":[],"mappings":"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"}
|