mirror of
https://github.com/rclone/rclone.git
synced 2025-12-06 00:03:32 +00:00
azureblob: add metadata and tags support across upload and copy paths
This change adds first-class metadata support to the Azure Blob backend, including headers, user metadata, tags, and modtime overrides, and wires it through uploads and server-side copies. There is a behavior change in that rclone will now set the "mtime" custom metadata when doing server side copies to azure and the `--metadata` argument is given. - Map standard headers: cache-control, content-disposition, content-encoding, content-language, content-type to corresponding x-ms-blob-* HTTP headers. - Map user metadata: any non-reserved keys (excluding x-ms-*) are sent as blob user metadata. Keys are normalized to lowercase for consistency. - Support tags: parse `x-ms-tags` as a comma-separated list of key=value pairs and apply them on uploads and copies. - Support mtime override: accept `mtime` in metadata (RFC3339/RFC3339Nano) to override the stored modtime persisted in user metadata.
This commit is contained in:
@@ -103,6 +103,26 @@ MD5 hashes are stored with blobs. However blobs that were uploaded in
|
||||
chunks only have an MD5 if the source remote was capable of MD5
|
||||
hashes, e.g. the local disk.
|
||||
|
||||
### Metadata and tags
|
||||
|
||||
Rclone can map arbitrary metadata to Azure Blob headers, user metadata, and tags
|
||||
when `--metadata` is enabled (or when using `--metadata-set` / `--metadata-mapper`).
|
||||
|
||||
- Headers: Set these keys in metadata to map to the corresponding blob headers:
|
||||
- `cache-control`, `content-disposition`, `content-encoding`, `content-language`, `content-type`.
|
||||
- User metadata: Any other non-reserved keys are written as user metadata
|
||||
(keys are normalized to lowercase). Keys starting with `x-ms-` are reserved and
|
||||
are not stored as user metadata.
|
||||
- Tags: Provide `x-ms-tags` as a comma-separated list of `key=value` pairs, e.g.
|
||||
`x-ms-tags=env=dev,team=sync`. These are applied as blob tags on upload and on
|
||||
server-side copies. Whitespace around keys/values is ignored.
|
||||
- Modtime override: Provide `mtime` in RFC3339/RFC3339Nano format to override the
|
||||
stored modtime persisted in user metadata. If `mtime` cannot be parsed, rclone
|
||||
logs a debug message and ignores the override.
|
||||
|
||||
Notes:
|
||||
- Rclone ignores reserved `x-ms-*` keys (except `x-ms-tags`) for user metadata.
|
||||
|
||||
### Performance
|
||||
|
||||
When uploading large files, increasing the value of
|
||||
|
||||
Reference in New Issue
Block a user