如何获取可通过curl/wget下载Conceptual Captions数据集的有效URL?
解决Conceptual Captions数据集无法通过curl/wget完整下载的问题
你用的这些链接是Google Cloud Storage(GCS)的网页预览链接,不是直接的文件下载地址,所以只会下载到170KB左右的网页元数据,而非实际的大体积数据集文件。下面提供两种可行的解决办法:
方法一:使用Google官方工具gsutil下载
这是最稳定的批量下载方式:
- 先安装gsutil:通过Google Cloud SDK安装即可,安装完成后无需登录就能访问公开的GCS存储桶。
- 把原链接中的
https://storage.cloud.google.com/替换成gs://,得到实际的GCS存储路径,然后用gsutil cp命令下载:# 训练集 gsutil cp gs://gcc-data/Train/GCC-training.tsv ./ # 验证集 gsutil cp gs://gcc-data/Validation/GCC-1.1.0-Validation.tsv ./ # 标签数据集 gsutil cp gs://conceptual-captions-v1-1-labels/Image_Labels_Subset_Train_GCC-Labels-training.tsv ./
修改后的批量下载脚本
#!/bin/bash # GCS存储路径数组 GCS_PATHS=( "gs://gcc-data/Train/GCC-training.tsv" "gs://gcc-data/Validation/GCC-1.1.0-Validation.tsv" "gs://conceptual-captions-v1-1-labels/Image_Labels_Subset_Train_GCC-Labels-training.tsv" ) # 对应输出文件名 OUTPUT_FILES=( "GCC-training.tsv" "GCC-Validation.tsv" "GCC-Labels-training.tsv" ) # 循环执行下载 for i in "${!GCS_PATHS[@]}"; do GCS_PATH=${GCS_PATHS[$i]} OUTPUT_FILE=${OUTPUT_FILES[$i]} echo "正在下载 $GCS_PATH 到 $OUTPUT_FILE..." gsutil cp "$GCS_PATH" "$OUTPUT_FILE" if [ $? -eq 0 ]; then echo "$OUTPUT_FILE 下载完成!" else echo "$OUTPUT_FILE 下载失败,请检查网络或路径。" fi done
方法二:生成临时直接下载链接
如果不想安装gsutil,可以手动生成临时有效链接:
- 打开去掉
_ga参数后的GCS网页链接,比如训练集的链接:https://storage.cloud.google.com/gcc-data/Train/GCC-training.tsv - 在页面右上角找到「下载」按钮,右键点击选择「复制链接地址」,这个链接是带签名的临时直接下载地址,有效期约1小时
- 把复制到的链接替换到你的curl/wget脚本中,就能正常下载完整文件
内容的提问来源于stack exchange,提问作者sachinruk
相关产品推荐
相关产品推荐

