| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- // 验证 id=1 的 key 是否在 OSS 上 + 调试脚本
- const fs = require('fs');
- const path = require('path');
- const envTxt = fs.readFileSync(path.join(__dirname, '..', '..', 'server', '.env'), 'utf8');
- const env = {};
- for (const line of envTxt.split(/\r?\n/)) {
- const m = line.match(/^\s*([A-Z0-9_]+)\s*=\s*(.*)\s*$/);
- if (m) env[m[1]] = m[2].replace(/^["']|["']$/g, '');
- }
- const OSS = require('ali-oss');
- const c = new OSS({
- accessKeyId: env.OSS_ACCESS_KEY_ID,
- accessKeySecret: env.OSS_ACCESS_KEY_SECRET,
- bucket: 'rrbrr-book-audio',
- endpoint: 'oss-cn-shanghai.aliyuncs.com',
- secure: true,
- });
- (async () => {
- const k = 'audio/5239bdd1-5ca6-496b-9291-9daf950a91d5/output.mp3';
- try {
- const r = await c.head(k);
- console.log('✅ key 存在:', k, ' size:', r.headers && r.headers['content-length']);
- } catch (e) {
- console.log('❌ key 不存在:', k, ' code:', e.code);
- }
- // 同时列全 OSS 找该 key
- const all = [];
- let marker = null;
- do {
- const r = await c.list({ prefix: 'audio/', 'max-keys': 1000, marker });
- all.push(...(r.objects || []));
- marker = r.nextMarker || null;
- } while (marker);
- console.log('OSS 总文件数:', all.length);
- const found = all.find(o => o.name === k);
- console.log('直接查找结果:', found ? 'FOUND size=' + found.size : 'NOT FOUND');
- // 模糊查找
- const match = all.filter(o => o.name.includes('5239bdd1'));
- console.log('5239bdd1 模糊匹配:', match.length, '条');
- for (const o of match) console.log(' ', o.name, o.size);
- })();
|