我尝试通过 Python 访问共享的 Google Drive 文件。
我已经创建了 OAuth 2.0 ClientID 以及 OAuth 同意。
我已复制粘贴此代码:https://github.com/googleworkspace/python-samples/blob/master/drive/quickstart/quickstart.py
授权成功,但是Python代码返回一个空白列表,表明Google Drive中没有文件,尽管有很多文件。
由于我正在尝试访问共享文件夹,是否应该存在差异?如果是,是否会导致错误,以及如何解决此问题?
如果不是,这是正确的方法吗?我还阅读了有关 API 密钥和服务帐户的信息,使用它们是否有意义?稍后我创建的这项服务将被 Databricks(在 AWS 上运行)上的其他用户使用,我不知道哪种解决方案是最好的。
感谢您的帮助!
python google-drive-api google-drive-shared-drive aws-databricks
我有一个问题,如何使用 Google Drive API 将文件上传到 Group Drive(共享驱动器)?
我已经尝试了该文件夹(组驱动器)的父 ID,但这似乎不起作用。
public uploadFile(stream, totalSize, mime, fileName, parentId?, callback?) {
//Init upload
this.emit('progress', {
type: 'file',
name: fileName,
uploaded: 0,
size: totalSize
});
debug('Uploading file %s with parentId: %s', fileName, parentId);
//start upload
var drive = google.drive({ version: 'v3', auth: this.oauth2Client });
var fileMetadata = {
name: fileName,
mimeType: mime,
'parents': [
"0AFiiwdVdxetuUk9PVA"
],
'teamDriveId': "0AFiiwdVdxetuUk9PVA"
}
if (parentId) {
fileMetadata['parents'] = [parentId];
}
var req = drive.files.create({
resource: fileMetadata,
media: {
mimeType: …
Run Code Online (Sandbox Code Playgroud) google-api node.js google-drive-api google-drive-shared-drive
嗨,大家好。
我一直在尝试使用 Google Drive API 来获取一个列表,其中包含使用 Spring Boot 和我公司域中所有文件(文档或电子表格)中分配的操作项google-api-services-drive
,但我遇到了一些问题:
indexableText
属性,但它不存在于响应中。fullText
字段在响应中不可用,或者某些其他等效属性无法查看实际内容并将其用作获取操作项的解决方法?我只需要从评论中知道谁被分配到操作项。
有任何想法吗?
google-api google-api-java-client google-drive-api google-drive-shared-drive
我只是想了解在 G Suite 上使用 Team Drive 获取团队存储库与仅使用 Google Drive 上的共享文件夹相比的优势。到目前为止,通过搜索不同的来源并进行测试,我发现了以下结果。
坦率地说,这一切让我想到,与 Google Drive 上的共享文件夹相比,Team Drive 目前是否提供了如此多的优势。
问题:
1)我在分析中遗漏了什么吗?
2)Team Drive 是否还有其他什么我没有提到的?
3) 将 google Drive 共享文件夹用于团队存储库是否还有其他陷阱(隐藏问题)?
当贡献者离开公司时,他们拥有的文件不会消失,如果他们被放置在团队云端硬盘中。
然而,这可以通过简单的自动化解决,该经理成为人员档案的所有者,向他报告,谁离开了公司
编辑访问功能:
在团队云端硬盘中,您可以拥有无权删除或移动文件的编辑者/贡献者。嗯,这是一个很好的功能和明显的优势。
一个团队驱动器中的所有文件都拥有相同的权限。
由于大多数人以一种或另一种方式为某些项目做出贡献,因此对我们而言,这意味着每个人都将获得整个公司所有项目存储库的编辑权限,这并不总是可取的
无法以分层方式管理访问权限
这是第一个的结果。在谷歌驱动器中说区域经理可以拥有整个区域的访问权限。然后,他将创建次区域文件夹并将它们分配给次区域经理。子区域管理员只会管理他们的文件夹,而不会看到其他子区域文件夹。但是区域经理的权限会向下流动,他们会自动看到所有内容。然后,子区域经理将为各个项目创建子文件夹,并向各个项目经理授予访问权限
在 Team Drive 中,这种构造是不可能的。
文件和/或文件夹不能位于多个位置 这是 Google Drive 的一个非常好的功能,它在 Team Drive 中是缺失的
子文件夹级别限制数量 现在是20,但仍然是一个限制
项目数量(文件/文件夹)限制现在 是400 k,但仍然是一个限制
文件夹链接将中断。 文件夹的链接在迁移到 Team Drive 时不会被保留
消失的文件/文件夹
如果有一个文件或文件夹位于多个位置并且这些位置之一在文件夹中,迁移到团队云端硬盘,那么此云端硬盘文件夹/文件也会从其他位置消失,而不仅仅是从文件夹中消失,这是明确迁移到团队云端硬盘。
我在Appmaker for Team Drive中创建了一个工作流程,我在团队驱动下有3个文件夹:被
批准
批准被
拒绝
我正在从待批准的文件夹中发送文件以供批准,如果用户批准,则该文档应移至APPROVED文件夹.REJECTED的逻辑相同.
现在我的问题是如何在Team Drive文件夹之间移动文档.DriveApp.getFolderById(folderId).addFile()
没有工作,因为我在Team Drive中不能有多个父级. DriveApp.getFolderById(folderId).createFile()
正在工作,但它正在创建一个带有新ID的全新文件,这不符合我的批准工作流程的目的,因为这是一个全新的文件.
有没有办法移动文件或复制/替换任何不会改变我文件ID的操作?我也试过REST API,但找不到任何.
google-apps-script google-app-maker google-drive-shared-drive
我已经成功地使用 PyDrive 将文件上传到 google-drive-folder。但是,当将文件上传到与我共享的 google-drive-teamdrive-folder 中的文件夹时,以下代码不起作用。
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)
location_to_save = "D:\images"
mImageLoc = location_to_save + "\\abcd.jpg"
#[...Code to fetch and save the file as abcd.jpg ...]
gfolder_id = "1H1gjBKcpiHJtnXKVxWQEC1CS8t4Gswjj" #This is a google drive folder id. I am replacing this with a teamdrive folder id, but that does not work
gfile_title = mImageLoc.split("\\")[-1] # returns abcd.jpg
http = gdrive.auth.Get_Http_Object()
f = gdrive.CreateFile({"parents": [{"kind": "drive#fileLink", "id": gfolder_id}],
'title': …
Run Code Online (Sandbox Code Playgroud) 我可以在我的个人 Google 云端硬盘上的父文件夹中创建新文件夹,但当我尝试在共享云端硬盘中执行此操作时,出现以下错误:
<HttpError 404 when requesting https://www.googleapis.com/drive/v3/files?fields=id&alt=json returned "File not found:
看起来与这个问题类似,但没有解决。
我是该帐户的管理员,其他命令(例如创建新文件)工作正常。
这是我在写入个人云端硬盘时成功使用的功能:
def create_folder_in_folder(folder_name,parent_folder_id):
file_metadata = {
'name' : folder_name,
'parents' : [parent_folder_id],
'mimeType' : 'application/vnd.google-apps.folder'
}
file = service.files().create(body=file_metadata,
fields='id').execute()
print ('Folder ID: %s' % file.get('id'))
Run Code Online (Sandbox Code Playgroud) 如果您在新窗口中从 Google Drive 打开 PDF 文件并转到垂直的 3 点菜单,您仍然可以看到该Embed item...
选项可供您使用。因此,我假设 Google 仍然允许嵌入 PDF 文件,如下所示:
但结果是,我将以下错误输出到 Chrome 浏览器控制台:
Uncaught (in promise) DOMException: Failed to execute 'getLayoutMap' on 'Keyboard': getLayoutMap()
must be called from a top-level browsing context.
Run Code Online (Sandbox Code Playgroud)
我什至尝试过<embed>
,<object>
但没有运气。如果它只是一个警告而不是一个错误,我就可以了,这在 SEO 的背景下是相当严重的。我只是想确认这是一个错误还是谷歌已正式停止嵌入服务,否则解决此问题的解决方案是什么?我刚刚探索了Google Drive API,但它似乎没有为特定的正确 HTML 嵌入提供任何解决方案。
请指教。提前致谢!
我需要获取根文件夹ID和过滤器文件夹,其中根文件夹作为其父文件夹.使用Nodejs和google drive API v3.这是我的代码以及如何更改此代码以获取root folderId?
const service = google.drive('v3');
service.files.list({
auth: client2,
fields: 'nextPageToken, files(id, name, webContentLink, webViewLink, mimeType, parents)'
}, (err, res) => {
if (err) {
console.error('The API returned an error.');
throw err;
}
const files = res.data.files;
if (files.length === 0) {
console.log('No files found.');
} else {
console.log('Files Found!');
for (const file of files) {
console.log(`${file.name} (${file.id})`);
}
Run Code Online (Sandbox Code Playgroud)
javascript node.js google-drive-api google-api-nodejs-client google-drive-shared-drive
我正在 Google Apps 脚本中编写一个 JavaScript 工具来检查文档的某些属性,例如“所有链接是否有效”、“权限设置是否正确”等。我正在使用https://developers.google.com/apps-script/reference/drive/drive-app中记录的 API按 ID 查找文件、检查其权限、在 Google Drive 中找到它们等,但我发现“共享驱动器”不能很好地与该 API 配合使用。
例如,
Folder.getName()
仅返回“Drive”而不是云端硬盘的名称,mygroup@domain.com
是共享驱动器的“管理器”,folder.getAccess('mygroup@domain.com')
为 NONE 并且folder.getViewers()
为空,DriveApp.getFolders()
迭代器中。特别是第二点现在对我来说是一个障碍,但我在这里错过了什么?我是否应该使用其他一些 API,或者这只是我应该报告的错误?是否有一些文档说明Drive
我可以和不能与共享云端硬盘一起使用 API 的哪些功能?
javascript google-apps-script google-drive-api google-drive-shared-drive