51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Google Photos使用rclone 将照片和视频传入和传出 Google Photos 的后端

Hide and password protect your Google Photos; here's how - India Today

Google Photos的 rclone 后端是专门用于将照片和视频传入和传出 Google Photos 的后端。

注意 rclone 使用的 Google Photos API 有很多限制,所以请仔细阅读限制部分 以确保它适合您的使用。

配置

谷歌云存储的初始设置涉及从谷歌相册获取令牌,您需要在浏览器中执行此操作。 rclone config带你通过它。

这是一个如何制作远程调用的示例 remote。第一次运行:

 rclone config

这将引导您完成交互式设置过程:

No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> remote
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
[snip]
XX / Google Photos
   \ "google photos"
[snip]
Storage> google photos
** See help for google photos backend at: https://rclone.org/googlephotos/ **

Google Application Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id> 
Google Application Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret> 
Set to make the Google Photos backend read only.

If you choose read only then rclone will only request read only access
to your photos, otherwise rclone will request full access.
Enter a boolean value (true or false). Press Enter for the default ("false").
read_only> 
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n
Remote config
Use web browser to automatically authenticate rclone with remote?
 * Say Y if the machine running rclone has a web browser you can use
 * Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.
y) Yes
n) No
y/n> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code

*** IMPORTANT: All media items uploaded to Google Photos with rclone
*** are stored in full resolution at original quality.  These uploads
*** will count towards storage in your Google Account.

--------------------
[remote]
type = google photos
token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2019-06-28T17:38:04.644930156+01:00"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

请参阅远程设置文档,了解如何在没有可用 Internet 浏览器的机器上进行设置。

请注意,如果使用网络浏览器自动进行身份验证,rclone 在您的本地计算机上运行网络服务器以收集从 Google 返回的令牌。这只会在打开浏览器的那一刻到您取回验证码的那一刻运行。这是打开的 http://127.0.0.1:53682/,如果您正在运行主机防火墙或使用手动模式,这可能需要您暂时取消阻止。

这个遥控器被称为 remote现在可以像这样使用

查看照片中的所有相册

rclone lsd remote:album

制作新专辑

rclone mkdir remote:album/newAlbum

列出相册的内容

rclone ls remote:album/newAlbum

同步 /home/local/images到 Google 相册,删除相册中的所有多余文件。

rclone sync --interactive /home/local/image remote:album/newAlbum

布局

由于 Google Photos 不是通用的云存储系统,因此后端的布局旨在帮助您导航。

下面的目录 media显示了对媒体进行分类的不同方式。每个文件都会出现多次。所以如果你想备份你的谷歌照片,你可以选择备份 remote:media/by-month。(NB remote:media/by-day目前相当慢,所以避免同步。)

请注意,您所有的照片和视频都会出现在 下的某处 media,但 album除非您将它们放入相册,否则它们可能不会出现在 下。

/
- upload
    - file1.jpg
    - file2.jpg
    - ...
- media
    - all
        - file1.jpg
        - file2.jpg
        - ...
    - by-year
        - 2000
            - file1.jpg
            - ...
        - 2001
            - file2.jpg
            - ...
        - ...
    - by-month
        - 2000
            - 2000-01
                - file1.jpg
                - ...
            - 2000-02
                - file2.jpg
                - ...
        - ...
    - by-day
        - 2000
            - 2000-01-01
                - file1.jpg
                - ...
            - 2000-01-02
                - file2.jpg
                - ...
        - ...
- album
    - album name
    - album name/sub
- shared-album
    - album name
    - album name/sub
- feature
    - favorites
        - file1.jpg
        - file2.jpg

树有两个可写部分,upload目录和目录的子目录 album

upload目录用于上传您不想放入相册的文件。这将是空的,开始时将包含您为一个 rclone 会话上传的文件,当您重新启动 rclone 时再次变为空。这样做的用例是,如果你有一大堆文件,你只想一次性转储到谷歌相册中。对于重复同步,上传到 album会更好。

目录中的目录 album也是可写的,您可以在 album. 如果您在其中复制具有目录层次结构的文件,则 rclone 将创建包含 /其中角色的相册。例如,如果你这样做

rclone copy /path/to/images remote:album/images

图像目录包含

images
    - file1.jpg
    dir
        file2.jpg
    dir2
        dir3
            file3.jpg

然后 rclone 将使用以下文件创建以下相册

  • 图片
    • 文件1.jpg
  • 图片/目录
    • 文件2.jpg
  • 图片/dir2/dir3
    • 文件3.jpg

这意味着您可以 album像使用普通文件系统一样使用该路径,并且它是重复同步的良好目标。

shared-album目录显示与您共享或由您共享的相册。这类似于 Google 相册网络界面中的"共享"选项卡。

标准选项

以下是特定于 google photos (Google Photos) 的标准选项。

--gphotos-客户端ID

OAuth 客户端 ID。

通常留空。

特性:

  • 配置:client_id
  • 环境变量:RCLONE_GPHOTOS_CLIENT_ID
  • 类型:字符串
  • 必填:假

--gphotos-client-secret

OAuth 客户端机密。

通常留空。

特性:

  • 配置:client_secret
  • 环境变量:RCLONE_GPHOTOS_CLIENT_SECRET
  • 类型:字符串
  • 必填:假

--gphotos-只读

设置为只读 Google 相册后端。

如果您选择只读,则 rclone 将只请求对您的照片的只读访问权限,否则 rclone 将请求完全访问权限。

特性:

  • 配置:只读
  • 环境变量:RCLONE_GPHOTOS_READ_ONLY
  • 类型:布尔
  • 默认值:假

高级选项

以下是特定于 google photos (Google Photos) 的高级选项。

--gphotos-令牌

作为 JSON blob 的 OAuth 访问令牌。

特性:

  • 配置:令牌
  • 环境变量:RCLONE_GPHOTOS_TOKEN
  • 类型:字符串
  • 必填:假

--gphotos-auth-url

验证服务器 URL。

留空以使用提供商默认值。

特性:

  • 配置:auth_url
  • 环境变量:RCLONE_GPHOTOS_AUTH_URL
  • 类型:字符串
  • 必填:假

--gphotos-token-url

令牌服务器 url。

留空以使用提供商默认值。

特性:

  • 配置:token_url
  • 环境变量:RCLONE_GPHOTOS_TOKEN_URL
  • 类型:字符串
  • 必填:假

--gphotos-读取大小

设置读取媒体项目的大小。

通常 rclone 不会读取媒体项的大小,因为这需要另一个事务。这不是同步所必需的。然而 rclone mount 需要在读取文件之前知道文件的大小,因此如果您想读取媒体,建议在使用 rclone mount 时设置此标志。

特性:

  • 配置:read_size
  • 环境变量:RCLONE_GPHOTOS_READ_SIZE
  • 类型:布尔
  • 默认值:假

--gphotos-开始年份

年份将要下载的照片限制为在给定年份之后上传的照片。

特性:

  • 配置:start_year
  • 环境变量:RCLONE_GPHOTOS_START_YEAR
  • 类型:整数
  • 默认值:2000

--gphotos-include-archived

还可以查看和下载存档媒体。

默认情况下,rclone 不请求存档媒体。因此,在同步时,存档媒体在目录列表中不可见或已传输。

请注意,相册中的媒体始终可见并同步,无论其存档状态如何。

使用此标志,存档媒体始终在目录列表中可见并已传输。

没有这个标志,存档的媒体将不会在目录列表中可见,也不会被传输。

特性:

  • 配置:include_archived
  • 环境变量:RCLONE_GPHOTOS_INCLUDE_ARCHIVED
  • 类型:布尔
  • 默认值:假

--gphotos-编码

后端的编码。

有关详细信息,请参阅概述中的编码部分

特性:

  • 配置:编码
  • 环境变量:RCLONE_GPHOTOS_ENCODING
  • 类型:多编码器
  • 默认值:斜线、CrLf、InvalidUtf8、点

限制

只能上传图片和视频。如果您尝试上传 Google Photos 无法识别的非视频或图像或格式,rclone 将上传该文件,然后 Google Photos 将其转换为媒体项目时会报错。

请注意,通过 API 上传到 Google 相册的所有媒体项目都以"原始质量"的全分辨率存储,并将计入 您在 Google 帐户中的存储配额。API 不 提供以"高质量"模式上传的方式。

rclone aboutGoogle 照片后端不支持。没有此功能的后端无法确定 rclone 安装的可用空间或使用策略 mfs(大部分可用空间)作为 rclone 联合远程的成员。

参见不支持 rclone 的后端列表 参见rclone about

下载图像

下载图像时,这会去除 EXIF 位置(根据文档和我的测试)。这是 Google Photos API 的限制,包含在错误 #112096115中。

当前的谷歌 API 不允许以原始分辨率下载照片。例如,如果您依赖"Google 相册"作为照片备份,这一点非常重要。您将无法使用 rclone 重新下载原始图像。作为最后的手段,您可以使用"google takeout"来恢复原始照片

下载视频

与通过 Google 照片网络界面下载视频相比,下载视频时,它们会以真正压缩的视频版本下载。这包含在错误#113672044中。

重复

如果目录中的文件名重复,则 rclone 会将文件 ID 添加到其名称中。因此,两个被调用的文件 file.jpg将显示为 file {123456}.jpgand file {ABCDEF}.jpg(实际 ID 长得多啊!)。

如果您两次上传相同的图像(具有相同的二进制数据),那么 Google 相册将对它进行重复数据删除。但是它会保留第一次上传的文件名,这可能会混淆 rclone。例如,如果您上传了一张图片,然后 upload将同一张图片上传到 album/my_album中,图片的文件 album/my_album名将是它最初上传时使用的名称,而不是您上传时使用的名称 album。实际上,这不会造成太多问题。

修改时间

Google 相册中显示的媒体日期是创建日期(由 EXIF 信息确定)或上传日期(如果未知)。

这不能由 rclone 更改,也不是本地磁盘上媒体的修改日期。这意味着 rclone 无法使用 Google Photos 中的日期进行同步。

尺寸

Google Photos API 不返回媒体的大小。这意味着当同步到 Google Photos 时,rclone 只能检查文件是否存在。

可以读取媒体的大小,但这需要对每个媒体项进行额外的 HTTP HEAD 请求,因此速度非常慢 并且会占用大量事务。--gphotos-read-size 这可以通过选项或配置参数启用 read_size = true

如果您想使用后端,rclone mount您可能需要启用此标志(取决于您的操作系统和使用照片的应用程序),否则您可能无法从挂载上读取媒体。您需要进行试验,看看它是否适用于没有标志的情况。

相册

Rclone 只能上传文件到它创建的相册。这是 Google Photos API 的限制

Rclone 只能从它创建的相册中删除它上传的文件。

删除文件

Rclone 可以从它创建的相册中删除文件,但请注意,Google Photos API 不允许永久删除媒体,因此该媒体仍将保留。请参见错误 #109759781

Rclone 无法删除除 album.

删除相册

Google 相册 API 不支持删除相册 - 请参见错误 #135714733

赞(1)
未经允许不得转载:工具盒子 » Google Photos使用rclone 将照片和视频传入和传出 Google Photos 的后端