数据上传

最后更新于

有两种方式进行数据上传:

  1. 在已经运行起来的「Jupyter 工作空间」进行数据上传
  2. 使用 OpenBayes「数据仓库」中的「上传」功能

其中「数据仓库」的上传支持通过浏览器上传和 bayes 命令行工具上传。对于数据规模不大的情况,通过「Jupyter 工作空间」上传是可以满足需求的。对于比较大规模的数据推荐使用「数据仓库」的上传功能。

通过「Jupyter 工作空间」进行数据上传

在启动「Jupyter 工作空间」后,在左侧的「文件浏览器」可以通过上次的「上传」实现单个文件的上传。

在大文件(大于 15MB)的上传过程中在其下方会显示一个进度条:

通过将文件拖拽到左侧「文件浏览器」也会触发文件的上传。

注意 通过「Jupyter 工作空间」上传文件没有「断点续传」的功能,任何上传的失败都需要整个文件重新上传。

OpenBayes「数据仓库」中的「上传」功能

「数据集」上传的功能与「模型」的「上传」功能是一致的,这里以「数据集」为例进行介绍。

在「数据集」列表界面点击「创建新数据集」输入数据集名称,描述可以创建一个空数据集。

数据集创建后可以在数据集页面点击「上传新版本」。

在上传的界面上可以看到其罗列了支持「自动解压」的文件类型,并提示「依据存储资源余量当前最大文件尺寸为 xxx」。这里的大小限制依据当前用户的剩余空间大小而定,最大支持「500 GB」的文件上传。

多文件上传

在上传界面可以一次性上传最多 500 个文件,支持文件的多选,文件拖拽等多种方式选择要上传的文件。

注意 上传的文件无法处理文件的重名,因此在拖拽文件夹上传时,如果上传的文件有相同的名字那么最终只有一个文件会被保存。

自动解压

如果上传「单个」文件符合以下格式时 .tar.br .tar.bz2 .tar.gz .tar.lz4 .tar.sz .tar.xz .tar.zst .rar .tar .tbr .tbz2 .tgz .tlz4 .tsz .txz .zip .gz .bz2 .lz4 .sz .xz .zst 压缩包会自动解压。如果上传的文件不是上述类型,或者是一次性上传多个文件,将直接将原始文件放入到新创建的数据集版本中。

如果希望多个压缩包解压到同一个目录下,可以以更新数据集版本的数据的形式,分次上传单个压缩包到同一个数据集版本下。

断点续传

数据集上传支持「断点续传」,当因为网络或者意外导致一次上传中断后,如果上传的文件没有更改并且上传的目标数据集没有变化,数据会继续上一次的上传。

断点续传实例

注意 断点续传支持的最长周期为 15 天,如果上传的数据集在第一次上传开始后 15 天内依然没有完成上传,其数据将会被删除。

通过 bayes 命令行工具上传

用 bayes 上传数据 已经做了详细的介绍。

常见的问题

上传立即成功但没有在页面看到新的文件

在某些情况下 OpenBayes 会认为某些文件已经存在了(即使文件并没有被成功的上传),这会导致点击上传后,上传对话框立即关闭并提示文件已经上传成功。

这种情况可以再次点击刚刚使用的「上传新版本」或者「上传至当前目录」,点击右上角的「清理上传缓存」后再次尝试上传流程。

自动解压的顶级目录丢失了

我们在对一个文件夹做压缩的时候可以有以下两种方式:

直接将文件加压缩:

在文件夹下将文件全选后打包:

对于第一种方式压缩包中实际上会多一层目录,在解压后也会出现一个顶级目录。对于第二种方式,压缩包中是平铺了一系列的文件,解压后不会包含一个额外的目录。

大部分的开发者会使用第一种方式进行文件夹的压缩,但并没有意识到这样解压的文件会多一层目录。为了方便大多数的场景,当压缩包名称和其顶级目录名称一致时,我们会自动帮助删除这层目录。举个例子:

我将一个目录 train 做了压缩,默认生成一个名为 train.zip 的文件。上传后,OpenBayes 会自动将顶级目录 train 删除保留其下的文件。

如果希望保留 train 这层目录,可以在上传时将 train.zip 重命名为 train_.zip 这样的名字,上传后 OpenBayes 发现文件名(train_)和顶级目录 train 不相同,会保留这层目录。

自动解压后显示失败

在压缩包上传后如果显示「上传失败,请确认数据包格式」则说明 OpenBayes 完全无法解压该压缩包,建议以其他格式打包后上传。

自动解压后实际文件个数变少了

压缩包打包时有多种原因会导致解压的全部或者部分失败:

  1. 字符编码格式不兼容,比如 Windows 下默认的中文文件字符编码问题
  2. 压缩包由于反复传输导致的部分文件的损坏
  3. 压缩包采用了不兼容的格式,见 macOS 大尺寸 zip 包上传

OpenBayes 会尝试多种解压工具对压缩进行解压,尽量保证压缩包的完整。但在多种尝试过后依然有可能丢失部分已经损毁的数据。因此如果发现解压后的结果和实际本地解压的结果不符,可以尝试将已经解压的本地数据重新打包或者通过部分打包多次上传的形式传输。

macOS 下大尺寸 zip 包的上传

zip 最初的标准最多支持大小为 4GB 的压缩包,以及最多包含 65535 个文件。

而新的 zip64 标准对其进行了扩展,支持了更大的压缩包和更多的文件个数。然而 macOS Sierra 以及其之后的版本默认的压缩工具在压缩超过 4GB 的内容时并没有支持这个标准,这会导致在 macOS 上压缩的超过 4GB 的压缩包无法在 OpenBayes 被成功解压并上传。

因此请 macOS 的用户使用 Keka 或者其他支持 zip64 标准的压缩工具。