@tomei/media 0.11.0-dev.1 → 0.11.0-dev.2

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.
@@ -15,38 +15,72 @@ class S3StorageProvider {
15
15
  const region = config_1.MediaConfig.getAwsRegion();
16
16
  const bucketName = config_1.MediaConfig.getAwsS3BucketName();
17
17
  const containerName = config_1.MediaConfig.getAwsS3ContainerName();
18
+ console.log('Initializing S3 Storage Provider:', {
19
+ region,
20
+ bucketName,
21
+ containerName,
22
+ hasExplicitCredentials: config_1.MediaConfig.hasAwsCredentials(),
23
+ });
18
24
  const clientConfig = { region };
19
25
  if (config_1.MediaConfig.hasAwsCredentials()) {
20
26
  clientConfig.credentials = {
21
27
  accessKeyId: config_1.MediaConfig.getAwsAccessKeyId(),
22
28
  secretAccessKey: config_1.MediaConfig.getAwsSecretAccessKey(),
23
29
  };
30
+ console.log('Using explicit AWS credentials');
31
+ }
32
+ else {
33
+ console.log('Using IAM role credentials (EC2 instance profile)');
24
34
  }
25
35
  this.s3Client = new client_s3_1.S3Client(clientConfig);
26
36
  this.bucketName = bucketName;
27
37
  this.containerName = containerName;
28
38
  }
29
39
  async uploadFile(buffer, objectType, objectId, fileName, fileExtension) {
40
+ var _a;
30
41
  try {
31
42
  const cleanFileName = fileName.replace(/\.[^/.]+$/, '');
32
43
  const key = `${this.containerName}/${objectType}/${objectId}/${cleanFileName}.${fileExtension}`;
44
+ console.log('S3 upload attempt:', {
45
+ bucket: this.bucketName,
46
+ key,
47
+ objectType,
48
+ objectId,
49
+ fileSize: buffer.length,
50
+ });
33
51
  await this.s3Client.send(new client_s3_1.PutObjectCommand({
34
52
  Bucket: this.bucketName,
35
53
  Key: key,
36
54
  Body: buffer,
37
55
  ContentType: this.getContentType(fileExtension),
38
56
  }));
57
+ console.log('S3 upload successful:', { key });
39
58
  return `${this.containerName}/${objectType}/${objectId}`;
40
59
  }
41
60
  catch (error) {
61
+ console.error('S3 upload error details:', {
62
+ error,
63
+ errorName: (_a = error === null || error === void 0 ? void 0 : error.constructor) === null || _a === void 0 ? void 0 : _a.name,
64
+ errorMessage: error instanceof Error ? error.message : 'Unknown error',
65
+ errorCode: (error === null || error === void 0 ? void 0 : error.Code) || (error === null || error === void 0 ? void 0 : error.code),
66
+ bucket: this.bucketName,
67
+ container: this.containerName,
68
+ objectType,
69
+ objectId,
70
+ });
42
71
  throw new Error(`S3 upload failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
43
72
  }
44
73
  }
45
74
  async downloadFile(path, fileName, fileExtension) {
46
75
  var _a, e_1, _b, _c;
76
+ var _d;
47
77
  try {
48
78
  const cleanFileName = fileName.replace(/\.[^/.]+$/, '');
49
79
  const key = `${path}/${cleanFileName}.${fileExtension}`;
80
+ console.log('S3 download attempt:', {
81
+ bucket: this.bucketName,
82
+ key,
83
+ });
50
84
  const response = await this.s3Client.send(new client_s3_1.GetObjectCommand({
51
85
  Bucket: this.bucketName,
52
86
  Key: key,
@@ -56,9 +90,9 @@ class S3StorageProvider {
56
90
  }
57
91
  const chunks = [];
58
92
  try {
59
- for (var _d = true, _e = __asyncValues(response.Body), _f; _f = await _e.next(), _a = _f.done, !_a; _d = true) {
60
- _c = _f.value;
61
- _d = false;
93
+ for (var _e = true, _f = __asyncValues(response.Body), _g; _g = await _f.next(), _a = _g.done, !_a; _e = true) {
94
+ _c = _g.value;
95
+ _e = false;
62
96
  const chunk = _c;
63
97
  chunks.push(Buffer.from(chunk));
64
98
  }
@@ -66,26 +100,53 @@ class S3StorageProvider {
66
100
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
67
101
  finally {
68
102
  try {
69
- if (!_d && !_a && (_b = _e.return)) await _b.call(_e);
103
+ if (!_e && !_a && (_b = _f.return)) await _b.call(_f);
70
104
  }
71
105
  finally { if (e_1) throw e_1.error; }
72
106
  }
73
- return Buffer.concat(chunks);
107
+ const buffer = Buffer.concat(chunks);
108
+ console.log('S3 download successful:', {
109
+ key: `${path}/${fileName.replace(/\.[^/.]+$/, '')}.${fileExtension}`,
110
+ size: buffer.length,
111
+ });
112
+ return buffer;
74
113
  }
75
114
  catch (error) {
115
+ console.error('S3 download error details:', {
116
+ error,
117
+ errorName: (_d = error === null || error === void 0 ? void 0 : error.constructor) === null || _d === void 0 ? void 0 : _d.name,
118
+ errorMessage: error instanceof Error ? error.message : 'Unknown error',
119
+ errorCode: (error === null || error === void 0 ? void 0 : error.Code) || (error === null || error === void 0 ? void 0 : error.code),
120
+ bucket: this.bucketName,
121
+ key: `${path}/${fileName.replace(/\.[^/.]+$/, '')}.${fileExtension}`,
122
+ });
76
123
  throw new Error(`S3 download failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
77
124
  }
78
125
  }
79
126
  async deleteFile(path, fileName, fileExtension) {
127
+ var _a;
80
128
  try {
81
129
  const cleanFileName = fileName.replace(/\.[^/.]+$/, '');
82
130
  const key = `${path}/${cleanFileName}.${fileExtension}`;
131
+ console.log('S3 delete attempt:', {
132
+ bucket: this.bucketName,
133
+ key,
134
+ });
83
135
  await this.s3Client.send(new client_s3_1.DeleteObjectCommand({
84
136
  Bucket: this.bucketName,
85
137
  Key: key,
86
138
  }));
139
+ console.log('S3 delete successful:', { key });
87
140
  }
88
141
  catch (error) {
142
+ console.error('S3 delete error details:', {
143
+ error,
144
+ errorName: (_a = error === null || error === void 0 ? void 0 : error.constructor) === null || _a === void 0 ? void 0 : _a.name,
145
+ errorMessage: error instanceof Error ? error.message : 'Unknown error',
146
+ errorCode: (error === null || error === void 0 ? void 0 : error.Code) || (error === null || error === void 0 ? void 0 : error.code),
147
+ bucket: this.bucketName,
148
+ key: `${path}/${fileName.replace(/\.[^/.]+$/, '')}.${fileExtension}`,
149
+ });
89
150
  throw new Error(`S3 delete failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
90
151
  }
91
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"s3-storage.provider.js","sourceRoot":"","sources":["../../../src/storage/providers/s3-storage.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"s3-storage.provider.js","sourceRoot":"","sources":["../../../src/storage/providers/s3-storage.provider.ts"],"names":[],"mappings":"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"}