如何将多张图片上传到Google相册?

我在我的Ubuntu电脑上有70,000张图片,分布在2,000个目录中。
我想将它们上传到Google相册,以无限容量的方式存储(称为“高质量”,尺寸会被压缩)。 这个解决方案对我来说看起来太复杂了。
难道没有更简单的方法来完成这个任务吗?
我的图片存储在以下结构中:
Images/YYYY/MM/DD-a
Images/YYYY/MM/DD-b

例子:

Images/2001/01/01-a-new-year-fireworks
Images/2001/01/01-b-skiing-with-friends
...
Images/2015/09/30

PS:我知道如何手动上传一个目录中的所有文件(使用Google相册的Web GUI)。但是这种方法无法递归地工作。这意味着手动上传不是处理70k张照片的解决方案。
PS2:我不想丢失我的目录结构。将一天的所有图片放入一个相册会导致我丧失大量信息。请看上面的例子。1月1日有两个文件夹,它们都包含不相关的图片。

1你试过直接拖放它们到在线界面中吗?或者在上传选择过程中选择多个图片? - Daniel
1@Daniel,我有大约7000个目录中的70000张图片。请告诉我如何使用复制和粘贴来解决我的问题。是的,我知道如何将所有文件上传到一个目录中,这很简单。但是目录太多了,我不想一个个手动上传! - guettli
使用Shotwell… 给我一分钟写一个回答给你。 - blade19899
这7000个目录应该在另一个目录里面,对吗?还有其他地方吗? - daltonfury42
@daltonfury42 我更新了问题。你可以在那里看到目录结构。你说的“其他地方在哪里?”是什么意思? - guettli
所有这些照片/文件夹应该被存放在一个共同的父文件夹中。为什么你不能简单地拖放这个文件夹呢?我经常这样做,尽管通常照片数量都不超过1k张。 - daltonfury42
@daltonfury42 我应该从哪里开始“拖”以及在哪里结束“放下”? - guettli
如果你有这样一个文件夹,而且你肯定会有的话,我可以写一篇带有截图的答案... - daltonfury42
5个回答

这个问题的答案似乎很简单。你只需要打开文件浏览器(Nautilus),在浏览器中打开photos.google.com,然后按照屏幕截图中所示,将整个目录结构拖到网页上就可以了!

screenshot

只需将“Images”文件夹拖放即可。如果文件夹包含其他文件也没有问题。谷歌会检测和上传仅为照片和视频的文件。上传结束后,它将显示未上传的文件列表。

我用火狐浏览器试了一下,什么都没发生。然后我又用谷歌浏览器试了一下:它占用了100%的CPU,并弹出一个窗口显示“谷歌不再响应”(从德语翻译成英语)。你说的“所有这些文件夹都必须放在一个子文件夹下面”,是什么意思?我拖动了我的“图片”文件夹,里面包含了这些目录:2001年、2002年,一直到2015年。每个目录下还有01到12(按月份分)。 - guettli
1就算天气很冷,也许上传还在进行中?你能帮忙确认一下吗?你可以使用bmonapt-get install bmon)来获取上传速率。话虽如此,我是指“所有这些文件夹都必须放在一个文件夹下面”,而不是子文件夹。抱歉。 - daltonfury42
如果我使用一年的时间(我选择了2001年,与最近几年相比非常小),它在Chrome上可以工作,但在Firefox上不行。然而,仍然存在一个问题:我的结构丢失了。有些日子我有两个目录:例如:2015/01/01a-nigh-firework 2015/01/01-b-skiing-with-familiy。我希望每个目录都有一个相册。 - guettli
所以你想创建2k个相册?如果不是的话,也就是说你想要创建的相册数量很少,那么请上传你想作为一个单独相册的文件夹,然后会有询问是否要使用刚刚上传的照片创建一个相册。 - daltonfury42
2是的,我想创建2k相册。我可以在我的电脑上将它们重新命名为 YYYY/MM/YYYY-MM-DD-x,而不是 YYYY/MM/DD-x。如果有一种方法可以像文件夹那样给相册命名,那么排序就会完美无缺了。据我所知,相册不能像目录那样嵌套。如果可以的话,我会选择我已经有的布局。 - guettli
如果Google Photos存在类似于 这个 的API,或者这个API也可以与Google Photos一起使用,那就有可能实现。然后你可以编写一个Python脚本来完成这项任务!明天我有一场考试,而且我自己对Python并不是很熟练。不过我也可以尝试一下。 - daltonfury42
1我猜谷歌相册有API。据我所知,Picasa没有帮助。但是我戴着我的Ubuntu用户眼镜。戴上这副眼镜后,我无法进行编程。 - guettli
让我们在聊天中继续这个讨论:http://chat.stackexchange.com/rooms/29707/discussion-between-daltonfury42-and-guettli。 - daltonfury42
我记得曾经读过一篇文章,说有个在谷歌工作的女生决定(是她的工作)不为Linux开发Picasa应用,因为“我们已经有更好的备份和版本控制解决方案了”(引述的意思),而对于那些仍然想通过这种方式同步照片的用户,她在15分钟内用Go语言编写了一个即兴脚本。如果有人找到这篇文章或脚本,请在评论中贴上网址,因为我再也找不到它了。:( - cprn
@cprn 这是你所指的工具:https://github.com/odeke-em/drive#installation - Maks
@Maks 不,我不这么认为。你提供的链接之前根本不存在。而且,这篇文章是一个男人写的 - 我非常确定是一位谷歌女员工在她的博客上发布了一个更小的工具。它只是比较照片和日期并进行同步。不涉及任何花哨的内容。不过还是谢谢你提供的链接。 - cprn
@cprn 是的。请仔细阅读Readme的第二段,它清楚地概述了项目的历史,包括原始作者是谁。 - Maks
@Maks 对不起,你是对的。那是Rakyll的照片。那么就没有照片了...我的记忆再次欺骗了我。:( - cprn

使用Shotwell上传

使用Picasa插件

听起来有点奇怪,因为Picasa似乎已经过时了,并且是一个不同的服务,但看起来谷歌已经将这项服务与照片合并了,所以你可以使用它将照片上传到那里作为一个新的集合。要启用此插件:

  1. 选择 编辑首选项
  2. 点击 插件 选项卡
  3. 确保 Picasa网络相册 已启用,并关闭对话框

导入文件

  1. 选择所有图像的根文件夹,让Shotwell将它们全部导入
  2. 接下来,选择它们全部。你可以点击其中一个,然后按下 Ctrl+A
  3. 选择 文件发布 或者按下 发布 工具栏按钮或使用 Ctrl+P
  4. 你将看到一个对话框,让你选择一个发布服务。然后你需要登录或创建一个账户。

截图:

Shotwell screenshoot

创建一个新相册或选择一个已存在的相册,确保“在公共画廊中列出相册”复选框被禁用,并最好将照片大小预设设置为“原始尺寸”。然后点击“发布”,完成!您可以在Google相册上查看照片。
摘录自:

Picasa和Google相册似乎是两个不同的东西。我从来没有使用过其中一个,但是我读到了这个链接:https://sites.google.com/site/picasaresources/Home/Picasa-FAQ/general/comparison-different-products。Google相册有无限的存储空间。如果我按照你展示的方式操作...我猜图片应该不会出现在Google相册里,对吗?或者我错了吗? - guettli
@guettli 我从来没有使用过这些服务,所以无法给你一个确切的答案。我使用mega.nz作为我的在线数据存储平台。 - blade19899
@guettli 顺便说一下,谷歌相册服务的存储空间有限,现在普通账户的存储空间少于15GB。 - Lucio
2嘿 @blade19899,你的方法太棒了!它可以上传所有照片,并且你立刻就能在https://photos.google.com上看到它们 :) - Lucio
@Lucio 来自 https://support.google.com/photos/answer/6220791?hl=en 的"无限免费存储"。另一方面,对于这个问题来说,我想上传15G还是150G是否重要? - guettli
@blade19899:看起来已经很酷了,我甚至不需要回答就可以开始使用你的解决方案了!**;-)** - Fabby
谷歌照片的导出是否不再能够使用Picasa导出插件来处理?当我点击发布时,出现了"501未实现"的错误。 - Kepi
4我在对话框中出现的这一步卡住了:“请复制此代码,切换到您的应用程序,并将其粘贴在那里。” - Flimm
这个以前是可以用的,但现在不行了。现在谷歌返回一个"400, 错误请求"的错误。 - benbotto

打开Google Photos Web

选择上传

从上传对话框中选择计算机

文件上传中,打开包含照片和视频的顶级目录 - 请参阅下面的注释3

现在是有趣的部分

选择搜索图标(确保您在正确的级别进行搜索,它以小写字母写在文件上传标题下方)

并搜索 .,即空格后跟句点(或点),以匹配所有图片和视频

注意:这样做是因为空格可以匹配与许多人期望*相似的所有内容,而句点将匹配例如my_image.jpg中的文件名中的点

接下来选择所有文件,例如点击第一个文件然后使用Ctrl A,或使用鼠标或其他方式

最后选择打开以上传所有文件

还有几点需要提及...

我正在使用Ubuntu 18.04。 这对我在Chrome和Firefox中都有效。 我不太敢直接进入最顶层文件夹,我一次上传一年的照片,有时候是近5000张照片,尽管有些情况下还有三四层嵌套的目录。

通过这种方式选择了超过10,000张照片后,"上传"按钮变灰了。所以似乎对于可以通过这种方式选择的照片数量有一定的上限。 - Mark Stosberg

偶然间我找到了一种将大型数据库上传到Google照片的方法。使用Overgrive将特定文件夹与Google Drive同步。您可能需要暂时支付额外的GD空间费用。然后打开从GD中显示图片的选项(如果您还没有这样做的话)。当所有图片在GP中显示后,您可以从GD中删除文件夹,而图片仍然会在GP中显示(尽管在我的情况下不是原始质量,但我也不想要那个)。然后取消云端的额外空间。
附注:关于使用网络文件夹。也许可以在Overgrive的GD文件夹中创建一个网络文件夹的本地副本。但是在这个主题上看到了一些担心。我还没有尝试过。
附注2:Overgrive正在计划为将图片同步到GP创建解决方案。不清楚该计划的进展情况。
附注3:在上传数据库后,我预计将使用设备自身的自动上传功能。但是如果数据库有变动,新文件夹也可以以与开始时提到的方式上传。
附注4:我还注意到了适用于Ubuntu的Insync软件。我还没有试过那个。

编辑

很遗憾,这个方法不起作用。我不知道它是从来没有起作用过,还是我错过了注意到,或者是在某个时候停止工作的。目前,以下解决方案只会将文件上传到Google Drive,并且这些文件在Google Photos中不可用,并且会占用您的空间(与打开“高质量”设置时大小为0kB的Google Photos文件不同)。我不会删除答案,因为也许有人会找出问题并改进它。

原始答案

另一种做事情的方式:

  1. 将Google Photos(在Drive设置中)设置为在Google Drive中显示
  2. 挂载Google Drive(例如,在系统设置中将您的Google帐户添加到GNOME在线帐户,并在文件管理器中打开google-drive://username@gmail.com/Google Photos
  3. 按照YYYY > MM > DD > file的结构复制照片,例如:
+ 2016
|
 `+ 08
  |
  |`+ 20
  | |
  | |`- myawesomepic.jpg
  |  `- DSC20160820066.PNG
  |
   `+ 23
    |
     `- vid016.mp4
5. 您可以以同样的方式下载和/或删除照片。

据我所知,只有谷歌相册具有无限空间。我有400GB的图片。我猜这个解决方案不可行,因为我在谷歌云盘上没有那么多空间。 - guettli
1我以为这样可以将图片发送到照片,但是我刚刚检查了一下,通过这种方式上传的文件只能在云盘上使用,并不会出现在照片中。:( 正如你所说,与通过照片上传的文件不同,这些文件会占用空间。真遗憾...我会修改我的回答。 - cprn