Google Photos 迁移

起因

因应 Google 教育版更改政策,教育版不再享有每个账户无限容量,而是改为每个学校共享 100TB 的云端硬碟空间

而我一直以来都依赖 Google 相册,于是就有了将教育版内的内容迁移到个人账户的计划

但是 Google 不支援直接迁移,而是需要我们从 Google Takeout 下载数据,再重新上传数据到云端,以此完成迁移

准备文件

好吧,也就150G的东西,大不了我手动就是了。

说干就干,于是我从 3.3 就发起了 Takeout 的请求 再到 3.5 的时候所有的数据都准备好了

下载下来之后解压发现,里面是相片+json的组合压缩包

json档案中存放的是一些文件元数据

{
  "title": "1.jpg",
  "description": "",
  "imageViews": "0",
  "creationTime": {
    "timestamp": "1557265777",
    "formatted": "7 May 2019, 21:49:37 UTC"
  },
  "photoTakenTime": {
    "timestamp": "1552457709",
    "formatted": "13 Mar 2019, 06:15:09 UTC"
  },
  "geoData": {
    "latitude": 0.0,
    "longitude": 0.0,
    "altitude": 0.0,
    "latitudeSpan": 0.0,
    "longitudeSpan": 0.0
  },
  "geoDataExif": {
    "latitude": 0.0,
    "longitude": 0.0,
    "altitude": 0.0,
    "latitudeSpan": 0.0,
    "longitudeSpan": 0.0
  },
  "googlePhotosOrigin": {
    "mobileUpload": {
      "deviceFolder": {
        "localFolderName": "Telegram"
      },
      "deviceType": "ANDROID_PHONE"
    }
  }
}

我一开始还在想这些东西给我们有什么用,但是一会儿就知道了。

上传文件

由于拖延症的缘故,我直到 4.4 才把所有的相册整理完毕, 晚上我把文件分成两个部分直接上传

但是传完之后上去浏览发现情况有点不对劲,我 3.5 的照片有大概 5k 张,我肯定不可能有那么多照片,所以肯定是文件的时间丢失,导致时间都集合在这个时间点,正好是我解压的时间点

我很生气,去质问 Google One 客服能不能有点作用让我批量修改,但是她说不行,我只能一张一张

5k 张照片,我改到明年都不一定改的完

于是我就想了一个办法,我把文件的创建时间和修改时间从本地改了,再传上去,理论上不就是时间对的了?

于是我糊了一个脚本,可以从它提供的 json 中获得时间,然后再应用在文件上。

不过具体有没有用,得等上传完才知道了。

Update: 它做功了。