diff --git a/MANUAL.html b/MANUAL.html index a3efcec14..a6806137d 100644 --- a/MANUAL.html +++ b/MANUAL.html @@ -81,7 +81,7 @@

rclone(1) User Manual

Nick Craig-Wood

-

Jun 19, 2025

+

Jun 27, 2025

NAME

rclone - manage files on cloud storage

@@ -426,6 +426,7 @@ choco install rclone

Packaging status

Docker installation

The rclone developers maintain a docker image for rclone.

+

Note: We also now offer a paid version of rclone with enterprise-grade security and zero CVEs through our partner SecureBuild. If you are interested, check out their website and the Rclone SecureBuild Image.

These images are built as part of the release process based on a minimal Alpine Linux.

The :latest tag will always point to the latest stable release. You can use the :beta tag to get the latest build from master. You can also use version tags, e.g. :1.49.1, :1.49 or :1.

$ docker pull rclone/rclone:latest
@@ -13230,7 +13231,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total
       --tpslimit float                     Limit HTTP transactions per second to this
       --tpslimit-burst int                 Max burst of transactions for --tpslimit (default 1)
       --use-cookies                        Enable session cookiejar
-      --user-agent string                  Set the user-agent to a specified string (default "rclone/v1.70.1")
+ --user-agent string Set the user-agent to a specified string (default "rclone/v1.70.2")

Performance

Flags helpful for increasing performance.

      --buffer-size SizeSuffix   In memory buffer size when reading files for each --transfer (default 16Mi)
@@ -27604,6 +27605,13 @@ y/e/d> y

Rclone cannot delete files anywhere except under album.

Deleting albums

The Google Photos API does not support deleting albums - see bug #135714733.

+

Making your own client_id

+

When you use rclone with Google photos in its default configuration you are using rclone's client_id. This is shared between all the rclone users. There is a global rate limit on the number of queries per second that each client_id can do set by Google.

+

If there is a problem with this client_id (eg quota too low or the client_id stops working) then you can make your own.

+

Please follow the steps in the google drive docs. You will need these scopes instead of the drive ones detailed:

+
https://www.googleapis.com/auth/photoslibrary.appendonly
+https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata
+https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata

Hasher

Hasher is a special overlay backend to create remotes which handle checksums for other remotes. It's main functions include: - Emulate hash types unimplemented by backends - Cache checksums to help with slow hashing of large local or (S)FTP files - Warm up checksum cache from external SUM files

Getting started

@@ -32075,7 +32083,10 @@ y/e/d> y

Creating Client ID for OneDrive Personal

To create your own Client ID, please follow these steps:

    -
  1. Open https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade and then click New registration.
  2. +
  3. Open https://portal.azure.com/?quickstart=true#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/Overview and then under the Add menu click App registration. +
  4. Enter a name for your app, choose account type Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox), select Web in Redirect URI, then type (do not copy and paste) http://localhost:53682/ and click Register. Copy and keep the Application (client) ID under the app name for later use.
  5. Under manage select Certificates & secrets, click New client secret. Enter a description (can be anything) and set Expires to 24 months. Copy and keep that secret Value for later use (you won't be able to see this value afterwards).
  6. Under manage select API permissions, click Add a permission and select Microsoft Graph then select delegated permissions.
  7. @@ -32647,75 +32658,75 @@ rclone rc vfs/refresh recursive=true

    Permissions are also supported, if --onedrive-metadata-permissions is set. The accepted values for --onedrive-metadata-permissions are "read", "write", "read,write", and "off" (the default). "write" supports adding new permissions, updating the "role" of existing permissions, and removing permissions. Updating and removing require the Permission ID to be known, so it is recommended to use "read,write" instead of "write" if you wish to update/remove permissions.

    Permissions are read/written in JSON format using the same schema as the OneDrive API, which differs slightly between OneDrive Personal and Business.

    Example for OneDrive Personal:

    -
    [
    -    {
    -        "id": "1234567890ABC!123",
    -        "grantedTo": {
    -            "user": {
    -                "id": "ryan@contoso.com"
    -            },
    -            "application": {},
    -            "device": {}
    -        },
    -        "invitation": {
    -            "email": "ryan@contoso.com"
    -        },
    -        "link": {
    -            "webUrl": "https://1drv.ms/t/s!1234567890ABC"
    -        },
    -        "roles": [
    -            "read"
    -        ],
    -        "shareId": "s!1234567890ABC"
    -    }
    -]
    -

    Example for OneDrive Business:

    [
         {
    -        "id": "48d31887-5fad-4d73-a9f5-3c356e68a038",
    -        "grantedToIdentities": [
    -            {
    -                "user": {
    -                    "displayName": "ryan@contoso.com"
    -                },
    -                "application": {},
    -                "device": {}
    -            }
    -        ],
    -        "link": {
    -            "type": "view",
    -            "scope": "users",
    -            "webUrl": "https://contoso.sharepoint.com/:w:/t/design/a577ghg9hgh737613bmbjf839026561fmzhsr85ng9f3hjck2t5s"
    -        },
    -        "roles": [
    -            "read"
    -        ],
    -        "shareId": "u!LKj1lkdlals90j1nlkascl"
    -    },
    -    {
    -        "id": "5D33DD65C6932946",
    -        "grantedTo": {
    -            "user": {
    -                "displayName": "John Doe",
    -                "id": "efee1b77-fb3b-4f65-99d6-274c11914d12"
    -            },
    -            "application": {},
    -            "device": {}
    -        },
    -        "roles": [
    -            "owner"
    -        ],
    -        "shareId": "FWxc1lasfdbEAGM5fI7B67aB5ZMPDMmQ11U"
    -    }
    -]
    + "id": "1234567890ABC!123", + "grantedTo": { + "user": { + "id": "ryan@contoso.com" + }, + "application": {}, + "device": {} + }, + "invitation": { + "email": "ryan@contoso.com" + }, + "link": { + "webUrl": "https://1drv.ms/t/s!1234567890ABC" + }, + "roles": [ + "read" + ], + "shareId": "s!1234567890ABC" + } +] +

    Example for OneDrive Business:

    +
    [
    +    {
    +        "id": "48d31887-5fad-4d73-a9f5-3c356e68a038",
    +        "grantedToIdentities": [
    +            {
    +                "user": {
    +                    "displayName": "ryan@contoso.com"
    +                },
    +                "application": {},
    +                "device": {}
    +            }
    +        ],
    +        "link": {
    +            "type": "view",
    +            "scope": "users",
    +            "webUrl": "https://contoso.sharepoint.com/:w:/t/design/a577ghg9hgh737613bmbjf839026561fmzhsr85ng9f3hjck2t5s"
    +        },
    +        "roles": [
    +            "read"
    +        ],
    +        "shareId": "u!LKj1lkdlals90j1nlkascl"
    +    },
    +    {
    +        "id": "5D33DD65C6932946",
    +        "grantedTo": {
    +            "user": {
    +                "displayName": "John Doe",
    +                "id": "efee1b77-fb3b-4f65-99d6-274c11914d12"
    +            },
    +            "application": {},
    +            "device": {}
    +        },
    +        "roles": [
    +            "owner"
    +        ],
    +        "shareId": "FWxc1lasfdbEAGM5fI7B67aB5ZMPDMmQ11U"
    +    }
    +]

    To write permissions, pass in a "permissions" metadata key using this same format. The --metadata-mapper tool can be very helpful for this.

    When adding permissions, an email address can be provided in the User.ID or DisplayName properties of grantedTo or grantedToIdentities. Alternatively, an ObjectID can be provided in User.ID. At least one valid recipient must be provided in order to add a permission for a user. Creating a Public Link is also supported, if Link.Scope is set to "anonymous".

    Example request to add a "read" permission with --metadata-mapper:

    -
    {
    -    "Metadata": {
    -        "permissions": "[{\"grantedToIdentities\":[{\"user\":{\"id\":\"ryan@contoso.com\"}}],\"roles\":[\"read\"]}]"
    -    }
    -}
    +
    {
    +    "Metadata": {
    +        "permissions": "[{\"grantedToIdentities\":[{\"user\":{\"id\":\"ryan@contoso.com\"}}],\"roles\":[\"read\"]}]"
    +    }
    +}

    Note that adding a permission can fail if a conflicting permission already exists for the file/folder.

    To update an existing permission, include both the Permission ID and the new roles to be assigned. roles is the only property that can be changed.

    To remove permissions, pass in a blob containing only the permissions you wish to keep (which can be empty, to remove all.) Note that the owner role will be ignored, as it cannot be removed.

    @@ -40079,6 +40090,36 @@ $ tree /tmp/c
  8. "error": return an error based on option value
  9. Changelog

    +

    v1.70.2 - 2025-06-27

    +

    See commits

    +

    v1.70.1 - 2025-06-19

    See commits