从 Google Apps 脚本将文件从 Google Drive 下载到本地文件夹 [英] Download file from Google Drive to local folder from Google Apps Script
问题描述
我正在尝试将特定 *.csv
文件从我的 Google 云端硬盘下载到我计算机上的本地文件夹中.我试过以下没有运气:
I'm trying to download a specific *.csv
file from my Google Drive to a local folder on my computer. I have tried the following with no luck:
ContentService.createTextOutput().downloadAsFile(fileName);
我没有收到错误消息,而且似乎什么也没发生.关于我的尝试有什么问题有什么想法吗?
I don't get an error, and nothing appears to happen. Any ideas on what's wrong with my attempt?
推荐答案
ContentService 用于将文本内容作为 Web 应用程序提供.您显示的代码行本身没有任何作用.假设它是您已部署为 Web 应用程序的 doGet()
函数的单行主体,那么这就是您什么都看不到的原因:
ContentService is used to serve up text content as a Web Application. The line of code you've shown does nothing on it's own. Assuming that it's a one-line body of a doGet()
function that you've deployed as a Web App, then here's why you're seeing nothing:
ContentService
- 使用 内容服务一个>,和....createTextOutput()
- 创建一个空的 文本输出对象,然后…….downloadAsFile(fileName)
- 当浏览器调用我们的Get
服务时,让它下载内容(名为fileName
)而不是显示它.
ContentService
- use Content Service, and....createTextOutput()
- create an empty text output object, then....downloadAsFile(fileName)
- when a browser invokes ourGet
service, have it download the content (namedfileName
) rather than displaying it.
由于我们没有内容,因此没有可下载的内容,所以你看,什么都没有.
Since we have no content, there's nothing to download, so you see, well, nothing.
此脚本将获取您 Google 云端硬盘上 csv 文件的文本内容,并将其提供给下载.保存脚本版本并将其发布为 Web 应用程序后,您可以将浏览器定向到发布的 URL 以开始下载.
This script will get the text content of a csv file on your Google Drive, and serve it for downloading. Once you've saved a version of the script and published it as a web app, you can direct a browser to the published URL to start a download.
根据您的浏览器设置,您可以选择特定的本地文件夹和/或更改文件名.您无法从运行此脚本的服务器端控制它.
Depending on your browser settings, you may be able to select a specific local folder and/or change the file name. You have no control over that from the server side, where this script runs.
/**
* This function serves content for a script deployed as a web app.
* See https://developers.google.com/apps-script/execution_web_apps
*/
function doGet() {
var fileName = "test.csv"
return ContentService
.createTextOutput() // Create textOutput Object
.append(getCsvFile(fileName)) // Append the text from our csv file
.downloadAsFile(fileName); // Have browser download, rather than display
}
/**
* Return the text contained in the given csv file.
*/
function getCsvFile(fileName) {
var files = DocsList.getFiles();
var csvFile = "No Content";
for (var i = 0; i < files.length; i++) {
if (files[i].getName() == fileName) {
csvFile = files[i].getContentAsString();
break;
}
}
return csvFile
}
这篇关于从 Google Apps 脚本将文件从 Google Drive 下载到本地文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!