【发布时间】:2014-07-08 20:17:18
【问题描述】:
我正在计划和 App 处理一个大文件 (150MB) 以进行 bigquery 分析,而不使用任何 UI。我已尝试使用 google 应用程序脚本,但无法上传此文件,服务器错误。例如,有什么方法可以将脚本上传到谷歌云存储?提前谢谢你。
【问题讨论】:
标签: google-apps-script google-bigquery google-cloud-storage
我正在计划和 App 处理一个大文件 (150MB) 以进行 bigquery 分析,而不使用任何 UI。我已尝试使用 google 应用程序脚本,但无法上传此文件,服务器错误。例如,有什么方法可以将脚本上传到谷歌云存储?提前谢谢你。
【问题讨论】:
标签: google-apps-script google-bigquery google-cloud-storage
从您的另一个问题的答案:Upload a csv file using google scripts to bigquery fails,听起来您所达到的限制是谷歌应用脚本上的帖子大小限制为 10 MB。所以我不知道使用 Google Apps Script 有什么办法解决这个问题(即使是 Google Cloud Storage 也会有同样的限制)。
您说您不想使用 UI...您可以使用 Python 吗?如果您安装了Google Cloud SDK,则可以使用bq 命令行客户端运行BigQuery 安装,也可以通过gsutil 工具将文件上传到Google Cloud Storage。这些是否解决了您的用例?如果没有,您能否提供有关您的用例的更多信息?这个 150MB 的文件在哪里?您需要上传一次还是为每个用户上传? (关于您的另一个问题,您提到您希望其他用户能够上传......他们都使用相同的文件还是不同的文件?它是静态的还是改变的?您可以将它加载到 BigQuery 一次然后复制每个需要它的用户的表?
【讨论】:
您可以创建一个非常简单的 html 表单,允许用户选择文件并将其发送到特定存储桶。像这样的东西对我有用。
<form action="http://storage.googleapis.com/Put_your_own_bucket_name_here"
method="post" enctype="multipart/form-data">Select a local file to send to cloud storage:
<input type="hidden" name="key" value="${filename}" />
<input type="hidden" name="success_action_redirect" value="Use your OK URL here" />
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
${filename} 表示将使用上传的文件名。
如果您希望未经身份验证的用户发送文件,请务必修改存储桶权限。您可以从开发人员控制台中的云存储浏览器为您的项目执行此操作。
查看https://developers.google.com/storage/docs/reference-methods#postobject 以获取完整参考。
【讨论】: