-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdrive.py
More file actions
119 lines (96 loc) · 2.96 KB
/
drive.py
File metadata and controls
119 lines (96 loc) · 2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
from googleapiclient.http import MediaFileUpload
import credential_handler
creds = credential_handler.get_creds()
def edit_file(file_id):
"""
Edits the contents of a file with specified id.
"""
try:
service = build('drive', 'v3', credentials=creds)
media = MediaFileUpload(
"test_file_2.txt", mimetype="text/plain", resumable=True
)
service.files().update(fileId=file_id, media_body=media).execute()
except HttpError as e:
print(e)
def delete_object(object_id):
"""
Trashes an object or a file. (you may still see it in the file's list)
"""
try:
service = build('drive', 'v3', credentials=creds)
body_value = {"trashed": True}
service.files().update(fileId=object_id, body=body_value).execute()
except HttpError as e:
print(e)
def move_file(file_id, folder_id):
"""
Moves file to folder with their specified ids.
"""
try:
service = build('drive', 'v3', credentials=creds)
file = service.files().get(fileId=file_id, fields="parents").execute()
previous_parents = ",".join(file.get("parents"))
file = (
service.files()
.update(
fileId=file_id,
addParents=folder_id,
removeParents=previous_parents,
fields="id, parents",
)
.execute()
)
return file.get("parents")
except HttpError as e:
print(e)
def upload_file_to_folder(file_name, folder_id):
"""
Adds a file to a folder with a specified name.
"""
try:
service = build('drive', 'v3', credentials=creds)
file_metadata = {
"name": file_name,
"parents": [folder_id]
}
media = MediaFileUpload(
"test_file.txt", mimetype="text/plain", resumable=True
)
file = (
service.files()
.create(body=file_metadata, media_body=media, fields="id")
.execute()
)
return file.get("id")
except HttpError as e:
print(e)
def create_folder(name):
"""
Creates folder with a specified name.
"""
try:
service = build('drive', 'v3', credentials=creds)
file_metadata = {
"name": name,
"mimeType": "application/vnd.google-apps.folder",
}
file = service.files().create(body=file_metadata, fields="id").execute()
print(f'Folder ID: "{file.get("id")}".')
return file.get("id")
except HttpError as e:
print(e)
def search_files():
"""
Shows all user files and folders.
"""
try:
service = build('drive', 'v3', credentials=creds)
results = service.files().list(q="").execute()
items = results.get('files', [])
return items
except HttpError as e:
print(e)
return None