从 ListObjectsV2 XML 响应中解析对象列表
(xml: string)
| 27 | |
| 28 | /** 从 ListObjectsV2 XML 响应中解析对象列表 */ |
| 29 | function parseListObjectsV2(xml: string): ListObjectsV2Result { |
| 30 | const parsed = xmlParser.parse(xml); |
| 31 | const result = parsed.ListBucketResult || parsed; |
| 32 | |
| 33 | const rawContents: any[] = result.Contents || []; |
| 34 | const contents: ListObjectsV2Result["contents"] = rawContents.map((obj: any) => ({ |
| 35 | key: String(obj.Key || ""), |
| 36 | lastModified: String(obj.LastModified || ""), |
| 37 | etag: String(obj.ETag || ""), |
| 38 | size: Number(obj.Size) || 0, |
| 39 | })); |
| 40 | |
| 41 | const isTruncated = result.IsTruncated === true || result.IsTruncated === "true"; |
| 42 | const nextToken = result.NextContinuationToken ? String(result.NextContinuationToken) : undefined; |
| 43 | |
| 44 | return { contents, isTruncated, nextContinuationToken: nextToken }; |
| 45 | } |
| 46 | |
| 47 | // ---- S3 文件系统 ---- |
| 48 |