Google Sheets中IMPORTDATA()无法读取云存储桶文件的问题
解决IMPORTDATA无法加载Google Cloud Storage文件的问题
你碰到的这个问题,核心原因其实是用错了Google Cloud Storage(GCS)的访问URL,和桶的公开设置有一定关联,但首先得把URL格式纠正过来。
1. 替换为GCS的标准公开对象URL
你现在使用的https://storage.cloud.google.com/csvloadtest99/test1.txt是GCS控制台的预览链接,这个链接依赖用户的登录状态才能访问,而IMPORTDATA发起的是无身份验证的请求,所以会返回登录页面HTML。
换成以下两种标准公开URL之一即可:
- 格式一:
https://storage.googleapis.com/[桶名]/[文件名]
对应你的文件就是:=IMPORTDATA("https://storage.googleapis.com/csvloadtest99/test1.txt") - 格式二:
https://[桶名].storage.googleapis.com/[文件名]
对应你的文件就是:=IMPORTDATA("https://csvloadtest99.storage.googleapis.com/test1.txt")
这两种都是GCS官方提供的公开对象直接访问地址,无需登录就能获取内容,IMPORTDATA可以正常解析。
2. 确认存储桶/对象的公开权限
虽然你提到桶是公开的,但还是要检查权限配置是否正确:
- 打开GCS控制台,找到
csvloadtest99桶,进入权限标签页 - 确认已添加
allUsers这个主体,并为它分配Storage Object Viewer角色(该权限足够让任何人读取桶内对象) - 如果单个对象
test1.txt有独立权限设置,需确保它继承了桶的公开权限,或者自身也设置了允许allUsers读取
3. 验证URL的可访问性
在浏览器的隐身窗口中打开你准备使用的标准URL,如果能直接看到文件的CSV内容,说明权限和URL都没问题,此时IMPORTDATA就能正常加载;如果仍跳转到登录页面,就要重新检查权限设置了。
补充:为什么Census的URL能正常工作?
http://www.census.gov/2010census/csv/pop_change.csv本身就是一个公开、无需验证的直接文件URL,和GCS的标准公开URL逻辑一致,所以IMPORTDATA能正常读取。
内容的提问来源于stack exchange,提问作者Carlo B.
相关产品推荐
相关产品推荐

