.NET中如何获取Firebase Storage的正确访问URL以读取文件?
问题根源与解决方案
核心问题:对象路径未做URL编码
你手动构造下载URL时,直接拼接了未编码的objectName。如果文件名包含空格、中文、特殊符号(如&、=、%等),会破坏URL的格式规范,导致服务器返回Invalid HTTP method/URL pair错误。
修复代码
修改URL构造部分,对objectName进行URL编码:
using (var stream = file.InputStream) { var objectName = $"Medidores/{fileName1}"; storage.UploadObject(bucketName, objectName, null, stream); // 对对象路径进行URL编码 var encodedObjectName = Uri.EscapeDataString(objectName); var fileUrl = $"https://firebasestorage.googleapis.com/v0/b/{bucketName}/o/{encodedObjectName}?alt=media"; listaFotos.Add(fileUrl); }
额外验证点
- 确认
bucketName是完整的存储桶名称(格式通常为[项目ID].appspot.com),不要使用简写。 - 上传完成后,可在Firebase控制台的存储面板查看文件的实际路径,对比编码后的URL是否与控制台提供的下载链接结构一致。
内容的提问来源于stack exchange,提问作者William Schmidt
相关产品推荐
相关产品推荐

