smoonb 0.0.67 → 0.0.69
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/package.json
CHANGED
|
@@ -147,9 +147,9 @@ module.exports = async ({ backupPath, targetProject }) => {
|
|
|
147
147
|
// Após a substituição do Project ID, a estrutura 2 fica: project-id-novo/bucket-name/file1.jpg
|
|
148
148
|
const extractedContents = await fs.readdir(extractDir);
|
|
149
149
|
const bucketDirs = [];
|
|
150
|
-
|
|
151
|
-
// Verificar se a pasta raiz é o Project ID
|
|
152
|
-
// Se for, as subpastas são os buckets reais
|
|
150
|
+
|
|
151
|
+
// Verificar se a pasta raiz é o Project ID (antigo ou novo)
|
|
152
|
+
// Se for, as subpastas são os buckets reais - NUNCA tratar a pasta raiz como bucket
|
|
153
153
|
let rootDir = null;
|
|
154
154
|
if (extractedContents.length === 1) {
|
|
155
155
|
const firstItem = extractedContents[0];
|
|
@@ -157,32 +157,20 @@ module.exports = async ({ backupPath, targetProject }) => {
|
|
|
157
157
|
const firstItemStats = await fs.stat(firstItemPath);
|
|
158
158
|
|
|
159
159
|
if (firstItemStats.isDirectory()) {
|
|
160
|
-
// Verificar se o nome da pasta raiz corresponde ao Project ID
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
return stats.isDirectory();
|
|
171
|
-
} catch {
|
|
172
|
-
return false;
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
if (hasSubDirs) {
|
|
177
|
-
// A pasta raiz é um wrapper do Project ID - buscar buckets nas subpastas
|
|
178
|
-
rootDir = firstItem;
|
|
179
|
-
console.log(chalk.white(` - Detectada pasta raiz com Project ID do destino: ${firstItem}`));
|
|
180
|
-
console.log(chalk.white(` - Buscando buckets nas subpastas...`));
|
|
181
|
-
}
|
|
160
|
+
// Verificar se o nome da pasta raiz corresponde ao Project ID antigo OU novo
|
|
161
|
+
const isProjectId =
|
|
162
|
+
(sourceProjectId && firstItem === sourceProjectId) ||
|
|
163
|
+
(firstItem === targetProject.targetProjectId);
|
|
164
|
+
|
|
165
|
+
if (isProjectId) {
|
|
166
|
+
// A pasta raiz é um wrapper do Project ID - SEMPRE buscar buckets nas subpastas
|
|
167
|
+
rootDir = firstItem;
|
|
168
|
+
console.log(chalk.white(` - Detectada pasta raiz com Project ID: ${firstItem}`));
|
|
169
|
+
console.log(chalk.white(` - Buscando buckets nas subpastas...`));
|
|
182
170
|
}
|
|
183
171
|
}
|
|
184
172
|
}
|
|
185
|
-
|
|
173
|
+
|
|
186
174
|
if (rootDir) {
|
|
187
175
|
// Estrutura com Project ID: project-id/bucket-name/...
|
|
188
176
|
// Listar subpastas dentro da pasta do Project ID - essas são os buckets reais
|
|
@@ -199,6 +187,13 @@ module.exports = async ({ backupPath, targetProject }) => {
|
|
|
199
187
|
});
|
|
200
188
|
}
|
|
201
189
|
}
|
|
190
|
+
|
|
191
|
+
// Se não encontrou buckets nas subpastas, avisar e retornar erro
|
|
192
|
+
if (bucketDirs.length === 0) {
|
|
193
|
+
console.log(chalk.red(` ❌ Erro: Nenhum bucket encontrado nas subpastas de ${rootDir}`));
|
|
194
|
+
console.log(chalk.red(` ❌ A pasta raiz é um Project ID e não deve ser tratada como bucket`));
|
|
195
|
+
return { success: false, buckets_count: 0 };
|
|
196
|
+
}
|
|
202
197
|
} else {
|
|
203
198
|
// Estrutura direta: bucket-name/...
|
|
204
199
|
// As pastas raiz são os buckets
|