Google 驱动器 API 在文件中添加一些字符串
Google Drive API adding some string in file
我一直在尝试仅使用 google API 和 Python HTTPS 模块来替换文件。但是当我更换它时。它将一些字符串添加到带有文本的文件中。
代码:
headers = {
"Authorization": "Bearer " + str(Acesstoken),
}
files = {
'file': open("./Test.txt", "rb"),
"mimeType": "text/plain"
}
r2= requests.patch(
"https://www.googleapis.com/upload/drive/v3/files/" + updateFileId,
headers= headers,
files = files,
)
替换文件前 Google 驱动器上的文本:
Test
替换文件后 Google 驱动器上的文本:
--a164a6e367e3577590ab9eb85b487e21
Content-Disposition: form-data; name="file"; filename="Test.txt"
Test 2
--a164a6e367e3577590ab9eb85b487e21
Content-Disposition: form-data; name="mimeType"; filename="mimeType"
text/plain
--a164a6e367e3577590ab9eb85b487e21--
提前感谢@DaImTo
我刚刚解锁了聊天功能。我不介意说话。
我认为在您的脚本中,需要修改端点。根据您的情况,请添加uploadType=media
的查询参数,如下所示。
顺便说一句,在这个脚本中,假设Google Drive 的文件是文本文件。从您的评论来看,您似乎正试图将 ZIP 文件覆盖为文本数据。在这种情况下,mimeType 不会更改。所以我想建议 Google 驱动器上的文件和上传文件之间的 mimeType 相同。
模式 1
如果要更新 ./Test.txt
驱动器 Google 上的文本文件,如何进行以下修改?
修改后的脚本:
在此脚本中,Google 驱动器上的文本文件被 ./Test.txt
覆盖。
import requests
accessToken = '###' # Please set your access token.
updateFileId = '###' # Please set the file ID fot the text file on Google Drive.
headers = {"Authorization": "Bearer " + accessToken}
file = open("./Test.txt", "rb")
r2 = requests.patch(
"https://www.googleapis.com/upload/drive/v3/files/" + updateFileId + "?uploadType=media",
headers=headers,
data=file,
)
模式 2
如果要将文本文件追加到 ./Test.txt
的 Google 驱动器上,如何进行以下修改?
修改后的脚本:
import io
import requests
accessToken = '###' # Please set your access token.
updateFileId = '###' # Please set the file ID fot the text file on Google Drive.
headers = {"Authorization": "Bearer " + accessToken}
r1 = requests.get("https://www.googleapis.com/drive/v3/files/" + updateFileId + "?alt=media", headers=headers)
file = open("./Test.txt", "rt")
merged = r1.text + file.read()
r2 = requests.patch(
"https://www.googleapis.com/upload/drive/v3/files/" + updateFileId + "?uploadType=media",
headers=headers,
data=io.BytesIO(bytes(merged, 'utf-8')),
)
- 在这种情况下,首先检索文本数据。并且,通过合并下载文本的文本和
./Test.txt
的文本,更新文本文件。
注:
- 如果您想覆盖 Google 驱动器上的 ZIP 文件,请使用示例 ZIP 文件作为上传文件。
参考文献:
我一直在尝试仅使用 google API 和 Python HTTPS 模块来替换文件。但是当我更换它时。它将一些字符串添加到带有文本的文件中。 代码:
headers = {
"Authorization": "Bearer " + str(Acesstoken),
}
files = {
'file': open("./Test.txt", "rb"),
"mimeType": "text/plain"
}
r2= requests.patch(
"https://www.googleapis.com/upload/drive/v3/files/" + updateFileId,
headers= headers,
files = files,
)
替换文件前 Google 驱动器上的文本:
Test
替换文件后 Google 驱动器上的文本:
--a164a6e367e3577590ab9eb85b487e21
Content-Disposition: form-data; name="file"; filename="Test.txt"
Test 2
--a164a6e367e3577590ab9eb85b487e21
Content-Disposition: form-data; name="mimeType"; filename="mimeType"
text/plain
--a164a6e367e3577590ab9eb85b487e21--
提前感谢@DaImTo
我刚刚解锁了聊天功能。我不介意说话。
我认为在您的脚本中,需要修改端点。根据您的情况,请添加uploadType=media
的查询参数,如下所示。
顺便说一句,在这个脚本中,假设Google Drive 的文件是文本文件。从您的评论来看,您似乎正试图将 ZIP 文件覆盖为文本数据。在这种情况下,mimeType 不会更改。所以我想建议 Google 驱动器上的文件和上传文件之间的 mimeType 相同。
模式 1
如果要更新 ./Test.txt
驱动器 Google 上的文本文件,如何进行以下修改?
修改后的脚本:
在此脚本中,Google 驱动器上的文本文件被 ./Test.txt
覆盖。
import requests
accessToken = '###' # Please set your access token.
updateFileId = '###' # Please set the file ID fot the text file on Google Drive.
headers = {"Authorization": "Bearer " + accessToken}
file = open("./Test.txt", "rb")
r2 = requests.patch(
"https://www.googleapis.com/upload/drive/v3/files/" + updateFileId + "?uploadType=media",
headers=headers,
data=file,
)
模式 2
如果要将文本文件追加到 ./Test.txt
的 Google 驱动器上,如何进行以下修改?
修改后的脚本:
import io
import requests
accessToken = '###' # Please set your access token.
updateFileId = '###' # Please set the file ID fot the text file on Google Drive.
headers = {"Authorization": "Bearer " + accessToken}
r1 = requests.get("https://www.googleapis.com/drive/v3/files/" + updateFileId + "?alt=media", headers=headers)
file = open("./Test.txt", "rt")
merged = r1.text + file.read()
r2 = requests.patch(
"https://www.googleapis.com/upload/drive/v3/files/" + updateFileId + "?uploadType=media",
headers=headers,
data=io.BytesIO(bytes(merged, 'utf-8')),
)
- 在这种情况下,首先检索文本数据。并且,通过合并下载文本的文本和
./Test.txt
的文本,更新文本文件。
注:
- 如果您想覆盖 Google 驱动器上的 ZIP 文件,请使用示例 ZIP 文件作为上传文件。