如何从Google Drive的选定文件夹下载文件以替换Heroku上的现有文件



我有位于Google Drive上的文件(链接";https://drive.google.com/drive/folders/1CuiRmfX2ORIzb62EM-L1x6UCm6t2uu4M?usp=sharing"(。这个文件将在没有代码的情况下每天更新,只需将其从谷歌驱动器中删除并上传一个新文件。我需要代码来做以下事情。

  • 登录此链接或仅谷歌驱动器
  • 将所有文件从csv文件夹(位于驱动器/salescontrol7/csv等不同文件夹内(下载到文件夹"project_csv",该文件夹目前是我的python目录,但将部署到heroku
  • 通过替换当前目录中的旧文件来保存下载的文件(这意味着如果存在movies_metadata,它应该替换它,而不是另存为movies_atadata(1((

我需要最简单的方法,所以我使用PyDrive。

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

gauth = GoogleAuth()

gauth.LoadCredentialsFile("mycreds.txt")
if gauth.credentials is None:
gauth.GetFlow()
gauth.flow.params.update({'access_type': 'offline'})
gauth.flow.params.update({'approval_prompt': 'force'})
gauth.LocalWebserverAuth()
elif gauth.access_token_expired:
gauth.Refresh()
else:

gauth.Authorize()
gauth.SaveCredentialsFile("mycreds.txt")
drive = GoogleDrive(gauth)
file_list = drive.ListFile({'q': "'root' in parents and trashed=false"}).GetList()
for file1 in file_list:
print('title: %s, id: %s' % (file1['title'], file1['id']))

但我所能做的就是获取驱动器上的文件夹和文件列表。如何访问文件夹salescontrol7/csv,然后从那里下载所有内容来替换项目文件夹中的文件(如果有的话(?

此外,也许有一种方法可以在没有PyDrive的情况下做到这一点,只使用公共共享链接?

提前谢谢!

我找到了使用gdown的最佳解决方案(https://github.com/wkentaro/gdown)。它确实从公共链接下载文件,每次都替换文件夹。

# a folder
url = "https://drive.google.com/drive/folders/15uNXeRBIhVvZJIhL4yTw4IsStMhUaaxl"
gdown.download_folder(url, quiet=True, use_cookies=False)
# same as the above, but with the folder ID
id = "15uNXeRBIhVvZJIhL4yTw4IsStMhUaaxl"
gdown.download_folder(id=id, quiet=True, use_cookies=False)

这两条线可以帮助你做到这一点!

相关内容

  • 没有找到相关文章

最新更新