如何通过gsutil命令获取Firebase Storage中MP4文件的可下载URL
用gsutil获取Firebase Storage中MP4文件的可下载URL
首先确保你已配置好gsutil,且能正常访问你的Firebase Storage存储桶(格式通常为gs://<你的项目ID>.appspot.com)。
方法1:生成临时可下载URL(带有效期)
临时URL适合短期分享,过期后自动失效:
- 单个文件生成命令:
说明:gsutil signurl -d 1h <你的服务账号密钥文件路径> gs://<存储桶名>/<文件夹路径>/<目标文件>.mp4-d 1h表示URL有效期1小时,可替换为2d(2天)、30m(30分钟)等时长;服务账号密钥文件需具备存储对象的读取权限。 - 批量生成所有MP4文件的临时URL:
用bash循环批量处理,脚本示例:gsutil ls gs://<存储桶名>/**/*.mp4 | while read file; do echo "文件路径: $file" gsutil signurl -d 1h <你的服务账号密钥文件路径> "$file" echo "------------------------" done
方法2:生成永久可下载URL(需设置文件公开)
若需要长期可访问的URL,先将文件设为公开可读,再拼接固定格式的URL:
- 批量设置MP4文件为公开可读:
说明:gsutil -m acl ch -u AllUsers:R gs://<存储桶名>/**/*.mp4-m表示并行处理,提升大量文件的处理效率;AllUsers:R赋予所有用户读取权限。 - 自动生成永久URL:
公开文件的URL格式为https://firebasestorage.googleapis.com/v0/b/<存储桶名>/o/<URL编码的文件路径>?alt=media,用脚本自动生成:gsutil ls gs://<存储桶名>/**/*.mp4 | while read file; do bucket=$(echo "$file" | cut -d'/' -f3) file_path=$(echo "$file" | cut -d'/' -f4-) encoded_path=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$file_path'))") url="https://firebasestorage.googleapis.com/v0/b/$bucket/o/$encoded_path?alt=media" echo "文件: $file" echo "永久URL: $url" echo "------------------------" done
注意事项
- 公开文件会被任何人访问,无需权限验证,用完后可执行
gsutil -m acl ch -d AllUsers gs://<存储桶名>/**/*.mp4移除公开权限。 - 服务账号密钥文件可从Google Cloud控制台的「IAM与管理」→「服务账号」页面创建并下载。
内容的提问来源于stack exchange,提问作者Ankur Ranpariya
相关产品推荐
相关产品推荐

