Google drive api 如何在Windows10中压缩一个大文件夹,将其上传到GDrive,然后解压?

Google drive api 如何在Windows10中压缩一个大文件夹,将其上传到GDrive,然后解压?,google-drive-api,zip,compression,google-colaboratory,7zip,Google Drive Api,Zip,Compression,Google Colaboratory,7zip,我有一个由22个子目录组成的目录。总的来说,该目录的大小约为750GB,我需要GDrive上的这些数据,以便我可以在Google Colab中使用它。显然,上传这个需要一个绝对的时间(特别是我的连接速度慢),所以我想先把它压缩,上传,然后在云中解压。 我使用7zip,并使用zip格式和“正常”压缩级别压缩每个子目录。(编辑:现在可以确认我得到的7z和tar格式的相同错误)。每个子目录的大小都在14到20GB之间。然后,我上传此文件并尝试使用以下代码在Google Colab中解压: drive.

我有一个由22个子目录组成的目录。总的来说,该目录的大小约为750GB,我需要GDrive上的这些数据,以便我可以在Google Colab中使用它。显然,上传这个需要一个绝对的时间(特别是我的连接速度慢),所以我想先把它压缩,上传,然后在云中解压。 我使用7zip,并使用zip格式和“正常”压缩级别压缩每个子目录。(编辑:现在可以确认我得到的7z和tar格式的相同错误)。每个子目录的大小都在14到20GB之间。然后,我上传此文件并尝试使用以下代码在Google Colab中解压:

drive.mount('/content/gdrive/')
!apt-get install p7zip-full
!7za x "/content/gdrive/My Drive/av_tfrecords/drumming_7zip.zip" -o"/content/gdrive/My Drive/unzipped_av_tfrecords/" -aos
这将在抛出错误之前提取zip文件的某些部分。有各种各样的错误,有时代码甚至不会在抛出错误之前开始解压缩文件。这是最常见的错误:

Can not open the file as archive

ERROR: Unknown error -2147024891

Archives with Errors: 1
如果我尝试重新运行
!7za
命令,在抛出此错误之前,它可能会从zip文件中提取一个或多个文件:

terminate called after throwing an instance of 'CInBufferException'
它还可能抱怨zip存档中的特定文件:

ERROR: Headers Error : drumming/yt-g0fi0iLRJCE_23.tfrecords
我还尝试使用:

!unzip -n "/content/gdrive/My Drive/av_tfrecords/drumming_7zip.zip" -d "/content/gdrive/My Drive/unzipped_av_tfrecords/"
但这只是开始抛出错误:

file #254:  bad zipfile offset (lseek):  8137146368

file #255:  bad zipfile offset (lseek):  8168710144

file #256:  bad zipfile offset (lseek):  8207515648
虽然我更喜欢Colab中的解决方案,但我也尝试过使用GDrive中名为“Zip提取器”的应用程序。但这也会抛出一个错误,并有一个数据配额

这已经发生在4个zip文件中,每次我尝试新的东西时,由于上传速度的原因,需要很长时间来尝试。如果您能解释为什么会发生这种情况,以及我如何解决这个问题,我们将不胜感激。此外,我也明白,除了我正在尝试做的事情之外,可能还有其他选择,他们也会很感激,即使他们没有直接回答问题。谢谢大家!

我也有同样的问题

通过以下方式解决它

new ProcessBuilder(new String[] {"7z", "x", fPath, "-o" + dir)
使用命令行数组,而不仅仅是整行

祝你好运