使用谷歌床单作为存储设备!

sheet-disk的Python项目详细描述


片状磁盘

使用谷歌床单作为存储设备!

这是什么?

将您的文件编码为base64格式,并以文本格式存储在google sheets电子表格中!

google sheets文件不计入驱动器存储空间,因此我们创建这些文件时不会占用驱动器空间。因此,基本上你可以让你的数据在谷歌服务器上,但占用0字节。

注意:电子表格文件是以编程方式创建的,它们存储在注册google sheet api凭据时获得的服务帐户下(请参阅"如何安装"部分),因此您将无法在google驱动器中看到这些文件。 您只能通过此程序访问这些文件。

工作原理

每个单元格可以容纳50000个字符,这意味着每个单元格可以轻松地容纳50kbytes的数据。但是,我们需要在每个单元格前面加上'字符,这样=就不会被解释为公式。

程序中每个单元格的当前限制为49500个字符,但您可以将其更改为49998以获得更多存储空间。

电子表格中单元格的硬限制是200万个单元格,但是当我们以如此密集的方式填充单元格时,我们只能在一个电子表格文件中使用大约1000个单元格。因此,您的文件被分成1000*49500字节的块并存储在单独的电子表格文件中。

注意:将文件转换为其base64表示形式时会产生33%的开销。

如何安装

  • 先决条件:

    此包使用需要OAuth凭据才能工作的gspread。要了解如何获取它们,请单击此处

    下载OAuth凭据文件后,将其存储在安全位置。复制它的路径,并创建一个名为shu disk-creds的环境变量

    例如,

    environment variable

要安装此软件包,请运行:

PIP安装工作表磁盘

要求:

  • python 3.6.7+(可能适用于3.x的较低版本,但尚未在该版本上进行测试)。
  • Windows 10(可能适用于Linux、MacOS和较旧的Windows,但尚未在它们上进行测试)。

如何使用

<H2>1。用作命令行程序

上载文件:

  python -m sheet_disk.cli upload <path_to_file>

上传完成后,将在当前目录中创建一个json文件(单击查看详细信息)。此文件将帮助您从谷歌工作表中检索上载的文件。

其中,

  • path_to_file:要上载的文件

    注意:不要丢失这个json文件。如果丢失此文件,则无法检索上载的文件。

    目前,默认情况下,创建的工作表文件是公开的,因此您可以通过简单地向朋友发送json文件来与他们共享您的文件。(单击以获取更多详细信息

继续上载文件:

python -m sheet_disk.cli upload <path_to_file> <file_info.json>

其中,

  • file_info.json(单击以获取更多详细信息):此参数是可选的。如果您的上载在完成之前被中断,程序仍将创建一个json文件,您可以通过此json文件从此点继续上载。

下载文件:

 python -m sheet_disk.cli download <download_path> <file_info.json>

其中,

  • download_path=文件的下载位置,

    例如: C:/users/me/file.jpg

  • 文件_info.json=t包含上传文件信息的json文件(点击查看更多详细信息)包含上传文件时获得的信息

注意:如果您的下载由于某种原因中断,您只需再次运行上述命令,工作表磁盘将从上次完全下载的工作表中恢复您的下载。

要查看参数用法,请使用:

python -m sheet_disk.cli -h
<H2>2。在程序中使用

要在程序中使用此软件包,您可以执行以下操作:

>>> import sheet_disk
>>> 
>>> # Uploading a file
>>> sheet_disk.upload('My File Path.jpg')
>>> 
>>> # Resuming an upload of file
>>> sheet_disk.upload('My File Path.jpg', 'My File Details.json') 
>>> 
>>> # Download a file
>>> sheet_disk.download('My downloaded file.jpg', 'My File Details.json')

示例用法

  • 客户端:

    • 代码:

      python-m sheet_disk.cli上传starry_night.jpg

      python-m sheet_disk.cli下载starry_night_download.jpg starry_night.jpg.json

    • 上载文件:

      上传前:

      上传前

      上传后:

      上传后

    • 下载文件:

      下载前:

      下载前

      下载后:

      下载后

  • 程序:

    • 代码:

        import sheet_disk
        sheet_disk.upload('starry_night.jpg')
        sheet_disk.download('starry_night_download.jpg', 'starry_night.jpg.json')
      
    • 上载文件:

      上传前:

      上传前

      上传后:

      上传后

    • 下载文件:

      下载前:

      下载前

      下载后:

      下载后

json文件

sheet disk存储电子表格的密钥/id,在json文件中创建文件时使用的程序版本。这个json文件有您的文件名,如果存在同名文件,则会有时间戳。

即使程序由于外部异常而意外退出,也会创建此文件,例如如果Internet停止工作,则此文件将跟踪已上载到工作表的数据。这样,如果您上载的文件很大,您就可以继续上载。

此json文件是您访问联机存储的文件内容的唯一方法,因此请确保此文件的安全!

您可以与朋友共享此文件,以便与朋友共享您上载的文件。

显著功能

  • 您的文件被分成大约50*10^6个字节,单独存储在一张纸上。
  • 如果被中断,您可以继续上载和下载。程序会自动跟踪并跳过已上载/下载的工作表,从而减少您的Internet使用量。
  • 多个线程用于上载和下载。这加快了上传和下载速度,因为多个并发连接可以同时发送/接收数据。
  • 文件分块。由于文件分块方法,对于较大的输入文件,RAM的使用不会增加。
  • 只能上载一个文件,但您可以将所有文件压缩到一个存档并上载。
  • 上载有点慢,因为将数据写入工作表比读取数据需要更长的时间。因此,下载比上传快得多。

责任

我不承担任何责任的机会,你不能取回你的文件从床单。 请多次备份您的文件,以防您无法从谷歌工作表中检索您的文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javai是JAXB的新手。如何将两个具有不同名称空间的不同xml合并为一个具有根元素的xml并将其解组?   JDO中的java应该是可传递的DefaultFetchGroup吗   java服务器配置问题   java在理解JList时遇到困难   java何时将RequestContextFilter用于Jersey?   java从数据库中读取文本文件。jar文件   Java正则表达式,仅适用于不包括零的正数   爪哇番石榴。类路径中的jar   JavaEE:关于设计的问题   java GUI,在面板中排列按钮   java Android为什么使用接口被认为是活动和片段之间通信的最佳实践?   java如何获取wicket图像的url以在开放图元标记中使用它   从Java字节[]>Base64>Javascript数组缓冲>Base64>byte[]   java正则表达式帮助字符串JWE766。1.pdf格式摘录766   java Hibernate,JPA忽略@Formula