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

如何获取Google Cloud Storage存储桶文件夹内的文件内容?

解决Google Cloud Storage获取子文件夹内文件内容的问题

错误原因

Google Cloud Storage(GCS)没有真实的文件夹层级,所谓的“文件夹”只是对象名称的前缀部分。你之前的错误是把文件夹路径拼到了存储桶名称参数里,而DownloadObject的第一个参数仅接受纯存储桶名称,不能包含路径,因此抛出无效桶名的异常。

正确实现代码

将文件的完整路径(包含前缀,即Templates/Email/DefaultTemplate.html)作为DownloadObject的第二个参数,第一个参数保持为纯存储桶名称notification-email-layout即可。同时优化流读取逻辑,使用using语句自动释放资源:

var storage = StorageClient.Create();
using var stream = new MemoryStream();
// 第一个参数是存储桶名,第二个参数是文件的完整对象路径
storage.DownloadObject("notification-email-layout", "Templates/Email/DefaultTemplate.html", stream);

// 将流指针重置到起始位置,读取内容
stream.Position = 0;
using var sr = new StreamReader(stream);
string txt = sr.ReadToEnd();

return Content(txt, "text/html");

补充说明

如果需要遍历某个“文件夹”下的所有文件,可以使用ListObjects方法,指定前缀参数(比如"Templates/Email/")来过滤对象:

var storage = StorageClient.Create();
var objects = storage.ListObjects("notification-email-layout", "Templates/Email/");
foreach (var obj in objects)
{
    // 处理每个文件对象,比如下载
    using var stream = new MemoryStream();
    storage.DownloadObject(obj.Bucket, obj.Name, stream);
    // ...后续读取逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:15:34