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

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第三方库


热门话题
java如何在Spring中从不同的控制器调用RestController方法?   来自Intellij生成代码的java WSDL客户端   基于Eratosthenes筛的Java素数计算器算法   java我们可以从hql查询中获得单个对象吗?   java使用通过PUT方法发送的字符串   java使用Jogl直接从volatileImage创建纹理   java Shorting实时Firebase以降序无休止地滚动数据   JavaWatson与SpringMVC的对话   使用代理的java HQL getResultSet   java特定的重新绘制管理器可以用于特定的JPanel吗?   Java Eclipse不会打印到控制台   AmazonWeb服务如何将使用java13编译的java应用程序转换为aws lambda函数   xslt使用Java从XSLFO生成HTML   java切换Android应用程序中基于开关的对话框按钮选择   用于验证名称的Java正则表达式   将json参数发布到REST服务时发生java错误   在无头模式下使用Chrome驱动程序配置时,WebDriversSample脚本中出现java面临预期条件失败错误   java Android上的本机方法如何与电源管理生命周期交互?   GuavaJava:用于确定等价性的外部类?   屏幕上的JavaFX中心舞台