youngtsai commited on
Commit
143b0eb
1 Parent(s): 06d6aec

with io.BytesIO(content.encode('utf-8')) as fh:

Browse files
Files changed (1) hide show
  1. app.py +25 -16
app.py CHANGED
@@ -106,23 +106,32 @@ def upload_content_directly(service, file_name, folder_id, content):
106
  """
107
  直接将内容上传到Google Drive中的新文件。
108
  """
109
- file_metadata = {'name': file_name, 'parents': [folder_id]}
110
- # 使用io.StringIO为文本内容创建一个内存中的文件对象
111
- fh = io.BytesIO(content.encode('utf-8'))
112
- media = MediaIoBaseUpload(fh, mimetype='text/plain', resumable=True)
113
-
114
- print("==content==")
115
- print(content)
116
- print("==content==")
117
-
118
- print("==media==")
119
- print(media)
120
- print("==media==")
121
-
122
 
123
- # 执行上传
124
- file = service.files().create(body=file_metadata, media_body=media, fields='id').execute()
125
- return file.get('id')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
 
127
  def download_file_as_string(service, file_id):
128
  """
 
106
  """
107
  直接将内容上传到Google Drive中的新文件。
108
  """
109
+ if not file_name:
110
+ raise ValueError("文件名不能为空")
111
+ if not folder_id:
112
+ raise ValueError("文件夹ID不能为空")
113
+ if content is None: # 允许空字符串上传,但不允许None
114
+ raise ValueError("内容不能为空")
 
 
 
 
 
 
 
115
 
116
+ file_metadata = {'name': file_name, 'parents': [folder_id]}
117
+ # 使用io.BytesIO为文本内容创建一个内存中的文件对象
118
+ try:
119
+ with io.BytesIO(content.encode('utf-8')) as fh:
120
+ media = MediaIoBaseUpload(fh, mimetype='text/plain', resumable=True)
121
+
122
+ print("==content==")
123
+ print(content)
124
+ print("==content==")
125
+
126
+ print("==media==")
127
+ print(media)
128
+ print("==media==")
129
+ # 执行上传
130
+ file = service.files().create(body=file_metadata, media_body=media, fields='id').execute()
131
+ return file.get('id')
132
+ except Exception as e:
133
+ print(f"上传文件时发生错误: {e}")
134
+ raise # 重新抛出异常,调用者可以根据需要处理或忽略
135
 
136
  def download_file_as_string(service, file_id):
137
  """