我想使用 Google Script 和 Python 将文件上传到 Google 云端硬盘。
我不想使用 API 执行此操作,因为它使用 JSON 文件并请求谷歌帐户的密码。
我想从没有 JSON 文件且不请求谷歌帐户的 Python 文件发送。
我想在 google script 中创建一个脚本,将文件上传到网站。
我找到了如何用 html 来做:
function saveFile(data,name,folderName) {
var contentType = data.substring(5,data.indexOf(';'));
var file = Utilities.newBlob(
Utilities.base64Decode(data.substr(data.indexOf('base64,')+7)),
contentType,
name
); //does the uploading of the files
DriveApp.getFolderById(childFolderIdA).createFile(file);
}
但是我没有找到如何用 python 来做。
如何将带文件的文件发送到此代码?
您可以通过发布一个网络应用程序以“我”(您)的身份运行并具有访问权限:“任何人,甚至是匿名的”来实现这一点。
服务器端:
function doPost(e){
const FOLDER_ID = '###FOLDER_ID###';
var name = e.parameter.name;
saveFile(e.postData.contents,name,FOLDER_ID);
return 'Success';
}
function saveFile(data,name,id) {
data = Utilities.newBlob(Utilities.base64DecodeWebSafe(data));
DriveApp.getFolderById(id)
.createFile(data.setName(name))
}
客户端:
import requests, base64
url = '###WEB_APP_PUBLISHED_URL###'
name = '###FILENAME###'
requests.post(url+'?name='+name,data=base64.urlsafe_b64encode(open('##UPLOAD FILE PATH##','rb').read()))
备注:
- 任何知道网络应用程序 url 的人都可以上传到您的驱动器
引用资料:
我是一名优秀的程序员,十分优秀!