You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过HTTP调用REST API列出AWS S3环境中的所有前缀?

获取chromium-browser-snapshots存储桶的所有前缀(RESTful API实现)

由于该存储桶兼容AWS S3 API,你可以通过S3的ListObjectsV2接口获取指定路径下的所有前缀(即目录结构),核心是通过delimiter=/参数让接口返回一级前缀,无需额外认证(该存储桶公开可读)。

JavaScript 实现(基于Fetch API)

直接发送GET请求,通过URL参数指定接口规则,解析返回的XML结果提取前缀:

async function fetchChromiumPrefixes() {
  const baseUrl = 'https://commondatastorage.googleapis.com/chromium-browser-snapshots';
  const queryParams = new URLSearchParams({
    delimiter: '/',
    'list-type': 2 // 指定使用ListObjectsV2版本接口
  });

  try {
    const res = await fetch(`${baseUrl}?${queryParams}`);
    const xmlStr = await res.text();
    
    // 解析XML获取前缀列表
    const parser = new DOMParser();
    const xmlDoc = parser.parseFromString(xmlStr, 'application/xml');
    const prefixNodes = xmlDoc.querySelectorAll('Prefix');
    const prefixes = Array.from(prefixNodes).map(node => node.textContent.trim());
    
    console.log('所有可用前缀:', prefixes);
    return prefixes;
  } catch (err) {
    console.error('请求失败:', err);
  }
}

// 调用执行
fetchChromiumPrefixes();

PowerShell 实现(基于Invoke-RestMethod)

利用PowerShell的REST请求工具,解析返回的XML对象提取前缀:

$bucketEndpoint = "https://commondatastorage.googleapis.com/chromium-browser-snapshots"
$requestParams = @{
    delimiter     = "/"
    "list-type"   = 2
}

try {
    $response = Invoke-RestMethod -Uri $bucketEndpoint -Method Get -Body $requestParams
    $prefixes = $response.ListBucketResult.CommonPrefixes.Prefix
    
    Write-Host "所有可用前缀:"
    $prefixes | ForEach-Object { Write-Host $_ }
} catch {
    Write-Error "请求出错:$_"
}

关键说明

  • delimiter=/:告诉API将路径按/分割,返回当前层级下的所有前缀(目录),而非所有文件对象
  • list-type=2:指定使用S3 ListObjectsV2接口,比旧版ListObjects更高效
  • 该存储桶为公开可读,无需签名或认证即可发起请求

内容的提问来源于stack exchange,提问作者DaMaxContent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 11:27:20