将 Google 驱动器与远程 Web 服务器同步
Synchronize Google drive with remote web server
根据主题,我需要将某些 Google 驱动器文件夹的内容与共享远程服务器(网站)中的相同内容同步。通常在服务器本身上,对于内部事务,我使用 cron。但在这种情况下,我不知道正确的解决方案是什么。我在网上看了看,但尽管有想法,但我不确定是否要构建特定的蜜蜂,或者是否有更实用的方法。感谢有耐心回答的人
如何创建一个 Google Apps Script Web app deployment,并将其用作 REST API?
这些是要遵循的步骤:
- 创建一个 new Google Apps 脚本项目。
- 创建一个将内容作为 JSON 提供的 Web 应用程序。在我的示例中,我将列出 Google Drive 的文件夹,但您可以随意使用它。在这个例子中,我正在实施一个简单的 API 密钥系统来防止不必要的访问。
Code.gs
const getDriveFolders = () => {
const listFolders = []
const folderIterator = DriveApp.getFolders()
while (folderIterator.hasNext()) {
listFolders.push(folderIterator.next().getName())
}
return listFolders
}
const errMsgRes = ContentService
.createTextOutput()
.append(JSON.stringify({ "msg": "INVALID API KEY" }))
.setMimeType(MimeType.JSON)
const succMsgRes = ContentService
.createTextOutput()
.setContent(JSON.stringify(getDriveFolders(), null, 2))
.setMimeType(MimeType.JSON)
const doGet = (e) => {
return e.parameter.api_key != "123123"
? errMsgRes
: succMsgRes
}
- 单击
Deploy
> Select type
> Wep app
。在 Who has acces
字段中,我将其设置为 Anyone
。抓住 URL 以备后用。
- 在您的网站中,您只需要获取数据。
index.html
<div id="drive-content" ></div>
<script>
const GASURL = "<DEPLOYMENT_URL>";
const container = document.getElementById("drive-content");
fetch(GASURL + "?api_key=123123")
.then((d) => d.json())
.then((d) => {
console.log(d);
container.innerHTML += d.join("<br />");
});
</script>
这样,每次您进入您的网站,内容都会更新。
文档
根据主题,我需要将某些 Google 驱动器文件夹的内容与共享远程服务器(网站)中的相同内容同步。通常在服务器本身上,对于内部事务,我使用 cron。但在这种情况下,我不知道正确的解决方案是什么。我在网上看了看,但尽管有想法,但我不确定是否要构建特定的蜜蜂,或者是否有更实用的方法。感谢有耐心回答的人
如何创建一个 Google Apps Script Web app deployment,并将其用作 REST API?
这些是要遵循的步骤:
- 创建一个 new Google Apps 脚本项目。
- 创建一个将内容作为 JSON 提供的 Web 应用程序。在我的示例中,我将列出 Google Drive 的文件夹,但您可以随意使用它。在这个例子中,我正在实施一个简单的 API 密钥系统来防止不必要的访问。
Code.gs
const getDriveFolders = () => {
const listFolders = []
const folderIterator = DriveApp.getFolders()
while (folderIterator.hasNext()) {
listFolders.push(folderIterator.next().getName())
}
return listFolders
}
const errMsgRes = ContentService
.createTextOutput()
.append(JSON.stringify({ "msg": "INVALID API KEY" }))
.setMimeType(MimeType.JSON)
const succMsgRes = ContentService
.createTextOutput()
.setContent(JSON.stringify(getDriveFolders(), null, 2))
.setMimeType(MimeType.JSON)
const doGet = (e) => {
return e.parameter.api_key != "123123"
? errMsgRes
: succMsgRes
}
- 单击
Deploy
>Select type
>Wep app
。在Who has acces
字段中,我将其设置为Anyone
。抓住 URL 以备后用。 - 在您的网站中,您只需要获取数据。
index.html
<div id="drive-content" ></div>
<script>
const GASURL = "<DEPLOYMENT_URL>";
const container = document.getElementById("drive-content");
fetch(GASURL + "?api_key=123123")
.then((d) => d.json())
.then((d) => {
console.log(d);
container.innerHTML += d.join("<br />");
});
</script>
这样,每次您进入您的网站,内容都会更新。