github.com/rclone/rclone@v1.66.1-0.20240517100346-7b89735ae726/docs/content/azureblob.md (about) 1 --- 2 title: "Microsoft Azure Blob Storage" 3 description: "Rclone docs for Microsoft Azure Blob Storage" 4 versionIntroduced: "v1.38" 5 --- 6 7 # {{< icon "fab fa-windows" >}} Microsoft Azure Blob Storage 8 9 Paths are specified as `remote:container` (or `remote:` for the `lsd` 10 command.) You may put subdirectories in too, e.g. 11 `remote:container/path/to/dir`. 12 13 ## Configuration 14 15 Here is an example of making a Microsoft Azure Blob Storage 16 configuration. For a remote called `remote`. First run: 17 18 rclone config 19 20 This will guide you through an interactive setup process: 21 22 ``` 23 No remotes found, make a new one? 24 n) New remote 25 s) Set configuration password 26 q) Quit config 27 n/s/q> n 28 name> remote 29 Type of storage to configure. 30 Choose a number from below, or type in your own value 31 [snip] 32 XX / Microsoft Azure Blob Storage 33 \ "azureblob" 34 [snip] 35 Storage> azureblob 36 Storage Account Name 37 account> account_name 38 Storage Account Key 39 key> base64encodedkey== 40 Endpoint for the service - leave blank normally. 41 endpoint> 42 Remote config 43 -------------------- 44 [remote] 45 account = account_name 46 key = base64encodedkey== 47 endpoint = 48 -------------------- 49 y) Yes this is OK 50 e) Edit this remote 51 d) Delete this remote 52 y/e/d> y 53 ``` 54 55 See all containers 56 57 rclone lsd remote: 58 59 Make a new container 60 61 rclone mkdir remote:container 62 63 List the contents of a container 64 65 rclone ls remote:container 66 67 Sync `/home/local/directory` to the remote container, deleting any excess 68 files in the container. 69 70 rclone sync --interactive /home/local/directory remote:container 71 72 ### --fast-list 73 74 This remote supports `--fast-list` which allows you to use fewer 75 transactions in exchange for more memory. See the [rclone 76 docs](/docs/#fast-list) for more details. 77 78 ### Modification times and hashes 79 80 The modification time is stored as metadata on the object with the 81 `mtime` key. It is stored using RFC3339 Format time with nanosecond 82 precision. The metadata is supplied during directory listings so 83 there is no performance overhead to using it. 84 85 If you wish to use the Azure standard `LastModified` time stored on 86 the object as the modified time, then use the `--use-server-modtime` 87 flag. Note that rclone can't set `LastModified`, so using the 88 `--update` flag when syncing is recommended if using 89 `--use-server-modtime`. 90 91 MD5 hashes are stored with blobs. However blobs that were uploaded in 92 chunks only have an MD5 if the source remote was capable of MD5 93 hashes, e.g. the local disk. 94 95 ### Performance 96 97 When uploading large files, increasing the value of 98 `--azureblob-upload-concurrency` will increase performance at the cost 99 of using more memory. The default of 16 is set quite conservatively to 100 use less memory. It maybe be necessary raise it to 64 or higher to 101 fully utilize a 1 GBit/s link with a single file transfer. 102 103 ### Restricted filename characters 104 105 In addition to the [default restricted characters set](/overview/#restricted-characters) 106 the following characters are also replaced: 107 108 | Character | Value | Replacement | 109 | --------- |:-----:|:-----------:| 110 | / | 0x2F | / | 111 | \ | 0x5C | \ | 112 113 File names can also not end with the following characters. 114 These only get replaced if they are the last character in the name: 115 116 | Character | Value | Replacement | 117 | --------- |:-----:|:-----------:| 118 | . | 0x2E | . | 119 120 Invalid UTF-8 bytes will also be [replaced](/overview/#invalid-utf8), 121 as they can't be used in JSON strings. 122 123 ### Authentication {#authentication} 124 125 There are a number of ways of supplying credentials for Azure Blob 126 Storage. Rclone tries them in the order of the sections below. 127 128 #### Env Auth 129 130 If the `env_auth` config parameter is `true` then rclone will pull 131 credentials from the environment or runtime. 132 133 It tries these authentication methods in this order: 134 135 1. Environment Variables 136 2. Managed Service Identity Credentials 137 3. Azure CLI credentials (as used by the az tool) 138 139 These are described in the following sections 140 141 ##### Env Auth: 1. Environment Variables 142 143 If `env_auth` is set and environment variables are present rclone 144 authenticates a service principal with a secret or certificate, or a 145 user with a password, depending on which environment variable are set. 146 It reads configuration from these variables, in the following order: 147 148 1. Service principal with client secret 149 - `AZURE_TENANT_ID`: ID of the service principal's tenant. Also called its "directory" ID. 150 - `AZURE_CLIENT_ID`: the service principal's client ID 151 - `AZURE_CLIENT_SECRET`: one of the service principal's client secrets 152 2. Service principal with certificate 153 - `AZURE_TENANT_ID`: ID of the service principal's tenant. Also called its "directory" ID. 154 - `AZURE_CLIENT_ID`: the service principal's client ID 155 - `AZURE_CLIENT_CERTIFICATE_PATH`: path to a PEM or PKCS12 certificate file including the private key. 156 - `AZURE_CLIENT_CERTIFICATE_PASSWORD`: (optional) password for the certificate file. 157 - `AZURE_CLIENT_SEND_CERTIFICATE_CHAIN`: (optional) Specifies whether an authentication request will include an x5c header to support subject name / issuer based authentication. When set to "true" or "1", authentication requests include the x5c header. 158 3. User with username and password 159 - `AZURE_TENANT_ID`: (optional) tenant to authenticate in. Defaults to "organizations". 160 - `AZURE_CLIENT_ID`: client ID of the application the user will authenticate to 161 - `AZURE_USERNAME`: a username (usually an email address) 162 - `AZURE_PASSWORD`: the user's password 163 4. Workload Identity 164 - `AZURE_TENANT_ID`: Tenant to authenticate in. 165 - `AZURE_CLIENT_ID`: Client ID of the application the user will authenticate to. 166 - `AZURE_FEDERATED_TOKEN_FILE`: Path to projected service account token file. 167 - `AZURE_AUTHORITY_HOST`: Authority of an Azure Active Directory endpoint (default: login.microsoftonline.com). 168 169 170 ##### Env Auth: 2. Managed Service Identity Credentials 171 172 When using Managed Service Identity if the VM(SS) on which this 173 program is running has a system-assigned identity, it will be used by 174 default. If the resource has no system-assigned but exactly one 175 user-assigned identity, the user-assigned identity will be used by 176 default. 177 178 If the resource has multiple user-assigned identities you will need to 179 unset `env_auth` and set `use_msi` instead. See the [`use_msi` 180 section](#use_msi). 181 182 ##### Env Auth: 3. Azure CLI credentials (as used by the az tool) 183 184 Credentials created with the `az` tool can be picked up using `env_auth`. 185 186 For example if you were to login with a service principal like this: 187 188 az login --service-principal -u XXX -p XXX --tenant XXX 189 190 Then you could access rclone resources like this: 191 192 rclone lsf :azureblob,env_auth,account=ACCOUNT:CONTAINER 193 194 Or 195 196 rclone lsf --azureblob-env-auth --azureblob-account=ACCOUNT :azureblob:CONTAINER 197 198 Which is analogous to using the `az` tool: 199 200 az storage blob list --container-name CONTAINER --account-name ACCOUNT --auth-mode login 201 202 #### Account and Shared Key 203 204 This is the most straight forward and least flexible way. Just fill 205 in the `account` and `key` lines and leave the rest blank. 206 207 #### SAS URL 208 209 This can be an account level SAS URL or container level SAS URL. 210 211 To use it leave `account` and `key` blank and fill in `sas_url`. 212 213 An account level SAS URL or container level SAS URL can be obtained 214 from the Azure portal or the Azure Storage Explorer. To get a 215 container level SAS URL right click on a container in the Azure Blob 216 explorer in the Azure portal. 217 218 If you use a container level SAS URL, rclone operations are permitted 219 only on a particular container, e.g. 220 221 rclone ls azureblob:container 222 223 You can also list the single container from the root. This will only 224 show the container specified by the SAS URL. 225 226 $ rclone lsd azureblob: 227 container/ 228 229 Note that you can't see or access any other containers - this will 230 fail 231 232 rclone ls azureblob:othercontainer 233 234 Container level SAS URLs are useful for temporarily allowing third 235 parties access to a single container or putting credentials into an 236 untrusted environment such as a CI build server. 237 238 #### Service principal with client secret 239 240 If these variables are set, rclone will authenticate with a service principal with a client secret. 241 242 - `tenant`: ID of the service principal's tenant. Also called its "directory" ID. 243 - `client_id`: the service principal's client ID 244 - `client_secret`: one of the service principal's client secrets 245 246 The credentials can also be placed in a file using the 247 `service_principal_file` configuration option. 248 249 #### Service principal with certificate 250 251 If these variables are set, rclone will authenticate with a service principal with certificate. 252 253 - `tenant`: ID of the service principal's tenant. Also called its "directory" ID. 254 - `client_id`: the service principal's client ID 255 - `client_certificate_path`: path to a PEM or PKCS12 certificate file including the private key. 256 - `client_certificate_password`: (optional) password for the certificate file. 257 - `client_send_certificate_chain`: (optional) Specifies whether an authentication request will include an x5c header to support subject name / issuer based authentication. When set to "true" or "1", authentication requests include the x5c header. 258 259 **NB** `client_certificate_password` must be obscured - see [rclone obscure](/commands/rclone_obscure/). 260 261 #### User with username and password 262 263 If these variables are set, rclone will authenticate with username and password. 264 265 - `tenant`: (optional) tenant to authenticate in. Defaults to "organizations". 266 - `client_id`: client ID of the application the user will authenticate to 267 - `username`: a username (usually an email address) 268 - `password`: the user's password 269 270 Microsoft doesn't recommend this kind of authentication, because it's 271 less secure than other authentication flows. This method is not 272 interactive, so it isn't compatible with any form of multi-factor 273 authentication, and the application must already have user or admin 274 consent. This credential can only authenticate work and school 275 accounts; it can't authenticate Microsoft accounts. 276 277 **NB** `password` must be obscured - see [rclone obscure](/commands/rclone_obscure/). 278 279 #### Managed Service Identity Credentials {#use_msi} 280 281 If `use_msi` is set then managed service identity credentials are 282 used. This authentication only works when running in an Azure service. 283 `env_auth` needs to be unset to use this. 284 285 However if you have multiple user identities to choose from these must 286 be explicitly specified using exactly one of the `msi_object_id`, 287 `msi_client_id`, or `msi_mi_res_id` parameters. 288 289 If none of `msi_object_id`, `msi_client_id`, or `msi_mi_res_id` is 290 set, this is is equivalent to using `env_auth`. 291 292 {{< rem autogenerated options start" - DO NOT EDIT - instead edit fs.RegInfo in backend/azureblob/azureblob.go then run make backenddocs" >}} 293 ### Standard options 294 295 Here are the Standard options specific to azureblob (Microsoft Azure Blob Storage). 296 297 #### --azureblob-account 298 299 Azure Storage Account Name. 300 301 Set this to the Azure Storage Account Name in use. 302 303 Leave blank to use SAS URL or Emulator, otherwise it needs to be set. 304 305 If this is blank and if env_auth is set it will be read from the 306 environment variable `AZURE_STORAGE_ACCOUNT_NAME` if possible. 307 308 309 Properties: 310 311 - Config: account 312 - Env Var: RCLONE_AZUREBLOB_ACCOUNT 313 - Type: string 314 - Required: false 315 316 #### --azureblob-env-auth 317 318 Read credentials from runtime (environment variables, CLI or MSI). 319 320 See the [authentication docs](/azureblob#authentication) for full info. 321 322 Properties: 323 324 - Config: env_auth 325 - Env Var: RCLONE_AZUREBLOB_ENV_AUTH 326 - Type: bool 327 - Default: false 328 329 #### --azureblob-key 330 331 Storage Account Shared Key. 332 333 Leave blank to use SAS URL or Emulator. 334 335 Properties: 336 337 - Config: key 338 - Env Var: RCLONE_AZUREBLOB_KEY 339 - Type: string 340 - Required: false 341 342 #### --azureblob-sas-url 343 344 SAS URL for container level access only. 345 346 Leave blank if using account/key or Emulator. 347 348 Properties: 349 350 - Config: sas_url 351 - Env Var: RCLONE_AZUREBLOB_SAS_URL 352 - Type: string 353 - Required: false 354 355 #### --azureblob-tenant 356 357 ID of the service principal's tenant. Also called its directory ID. 358 359 Set this if using 360 - Service principal with client secret 361 - Service principal with certificate 362 - User with username and password 363 364 365 Properties: 366 367 - Config: tenant 368 - Env Var: RCLONE_AZUREBLOB_TENANT 369 - Type: string 370 - Required: false 371 372 #### --azureblob-client-id 373 374 The ID of the client in use. 375 376 Set this if using 377 - Service principal with client secret 378 - Service principal with certificate 379 - User with username and password 380 381 382 Properties: 383 384 - Config: client_id 385 - Env Var: RCLONE_AZUREBLOB_CLIENT_ID 386 - Type: string 387 - Required: false 388 389 #### --azureblob-client-secret 390 391 One of the service principal's client secrets 392 393 Set this if using 394 - Service principal with client secret 395 396 397 Properties: 398 399 - Config: client_secret 400 - Env Var: RCLONE_AZUREBLOB_CLIENT_SECRET 401 - Type: string 402 - Required: false 403 404 #### --azureblob-client-certificate-path 405 406 Path to a PEM or PKCS12 certificate file including the private key. 407 408 Set this if using 409 - Service principal with certificate 410 411 412 Properties: 413 414 - Config: client_certificate_path 415 - Env Var: RCLONE_AZUREBLOB_CLIENT_CERTIFICATE_PATH 416 - Type: string 417 - Required: false 418 419 #### --azureblob-client-certificate-password 420 421 Password for the certificate file (optional). 422 423 Optionally set this if using 424 - Service principal with certificate 425 426 And the certificate has a password. 427 428 429 **NB** Input to this must be obscured - see [rclone obscure](/commands/rclone_obscure/). 430 431 Properties: 432 433 - Config: client_certificate_password 434 - Env Var: RCLONE_AZUREBLOB_CLIENT_CERTIFICATE_PASSWORD 435 - Type: string 436 - Required: false 437 438 ### Advanced options 439 440 Here are the Advanced options specific to azureblob (Microsoft Azure Blob Storage). 441 442 #### --azureblob-client-send-certificate-chain 443 444 Send the certificate chain when using certificate auth. 445 446 Specifies whether an authentication request will include an x5c header 447 to support subject name / issuer based authentication. When set to 448 true, authentication requests include the x5c header. 449 450 Optionally set this if using 451 - Service principal with certificate 452 453 454 Properties: 455 456 - Config: client_send_certificate_chain 457 - Env Var: RCLONE_AZUREBLOB_CLIENT_SEND_CERTIFICATE_CHAIN 458 - Type: bool 459 - Default: false 460 461 #### --azureblob-username 462 463 User name (usually an email address) 464 465 Set this if using 466 - User with username and password 467 468 469 Properties: 470 471 - Config: username 472 - Env Var: RCLONE_AZUREBLOB_USERNAME 473 - Type: string 474 - Required: false 475 476 #### --azureblob-password 477 478 The user's password 479 480 Set this if using 481 - User with username and password 482 483 484 **NB** Input to this must be obscured - see [rclone obscure](/commands/rclone_obscure/). 485 486 Properties: 487 488 - Config: password 489 - Env Var: RCLONE_AZUREBLOB_PASSWORD 490 - Type: string 491 - Required: false 492 493 #### --azureblob-service-principal-file 494 495 Path to file containing credentials for use with a service principal. 496 497 Leave blank normally. Needed only if you want to use a service principal instead of interactive login. 498 499 $ az ad sp create-for-rbac --name "<name>" \ 500 --role "Storage Blob Data Owner" \ 501 --scopes "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/blobServices/default/containers/<container>" \ 502 > azure-principal.json 503 504 See ["Create an Azure service principal"](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) and ["Assign an Azure role for access to blob data"](https://docs.microsoft.com/en-us/azure/storage/common/storage-auth-aad-rbac-cli) pages for more details. 505 506 It may be more convenient to put the credentials directly into the 507 rclone config file under the `client_id`, `tenant` and `client_secret` 508 keys instead of setting `service_principal_file`. 509 510 511 Properties: 512 513 - Config: service_principal_file 514 - Env Var: RCLONE_AZUREBLOB_SERVICE_PRINCIPAL_FILE 515 - Type: string 516 - Required: false 517 518 #### --azureblob-use-msi 519 520 Use a managed service identity to authenticate (only works in Azure). 521 522 When true, use a [managed service identity](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/) 523 to authenticate to Azure Storage instead of a SAS token or account key. 524 525 If the VM(SS) on which this program is running has a system-assigned identity, it will 526 be used by default. If the resource has no system-assigned but exactly one user-assigned identity, 527 the user-assigned identity will be used by default. If the resource has multiple user-assigned 528 identities, the identity to use must be explicitly specified using exactly one of the msi_object_id, 529 msi_client_id, or msi_mi_res_id parameters. 530 531 Properties: 532 533 - Config: use_msi 534 - Env Var: RCLONE_AZUREBLOB_USE_MSI 535 - Type: bool 536 - Default: false 537 538 #### --azureblob-msi-object-id 539 540 Object ID of the user-assigned MSI to use, if any. 541 542 Leave blank if msi_client_id or msi_mi_res_id specified. 543 544 Properties: 545 546 - Config: msi_object_id 547 - Env Var: RCLONE_AZUREBLOB_MSI_OBJECT_ID 548 - Type: string 549 - Required: false 550 551 #### --azureblob-msi-client-id 552 553 Object ID of the user-assigned MSI to use, if any. 554 555 Leave blank if msi_object_id or msi_mi_res_id specified. 556 557 Properties: 558 559 - Config: msi_client_id 560 - Env Var: RCLONE_AZUREBLOB_MSI_CLIENT_ID 561 - Type: string 562 - Required: false 563 564 #### --azureblob-msi-mi-res-id 565 566 Azure resource ID of the user-assigned MSI to use, if any. 567 568 Leave blank if msi_client_id or msi_object_id specified. 569 570 Properties: 571 572 - Config: msi_mi_res_id 573 - Env Var: RCLONE_AZUREBLOB_MSI_MI_RES_ID 574 - Type: string 575 - Required: false 576 577 #### --azureblob-use-emulator 578 579 Uses local storage emulator if provided as 'true'. 580 581 Leave blank if using real azure storage endpoint. 582 583 Properties: 584 585 - Config: use_emulator 586 - Env Var: RCLONE_AZUREBLOB_USE_EMULATOR 587 - Type: bool 588 - Default: false 589 590 #### --azureblob-endpoint 591 592 Endpoint for the service. 593 594 Leave blank normally. 595 596 Properties: 597 598 - Config: endpoint 599 - Env Var: RCLONE_AZUREBLOB_ENDPOINT 600 - Type: string 601 - Required: false 602 603 #### --azureblob-upload-cutoff 604 605 Cutoff for switching to chunked upload (<= 256 MiB) (deprecated). 606 607 Properties: 608 609 - Config: upload_cutoff 610 - Env Var: RCLONE_AZUREBLOB_UPLOAD_CUTOFF 611 - Type: string 612 - Required: false 613 614 #### --azureblob-chunk-size 615 616 Upload chunk size. 617 618 Note that this is stored in memory and there may be up to 619 "--transfers" * "--azureblob-upload-concurrency" chunks stored at once 620 in memory. 621 622 Properties: 623 624 - Config: chunk_size 625 - Env Var: RCLONE_AZUREBLOB_CHUNK_SIZE 626 - Type: SizeSuffix 627 - Default: 4Mi 628 629 #### --azureblob-upload-concurrency 630 631 Concurrency for multipart uploads. 632 633 This is the number of chunks of the same file that are uploaded 634 concurrently. 635 636 If you are uploading small numbers of large files over high-speed 637 links and these uploads do not fully utilize your bandwidth, then 638 increasing this may help to speed up the transfers. 639 640 In tests, upload speed increases almost linearly with upload 641 concurrency. For example to fill a gigabit pipe it may be necessary to 642 raise this to 64. Note that this will use more memory. 643 644 Note that chunks are stored in memory and there may be up to 645 "--transfers" * "--azureblob-upload-concurrency" chunks stored at once 646 in memory. 647 648 Properties: 649 650 - Config: upload_concurrency 651 - Env Var: RCLONE_AZUREBLOB_UPLOAD_CONCURRENCY 652 - Type: int 653 - Default: 16 654 655 #### --azureblob-list-chunk 656 657 Size of blob list. 658 659 This sets the number of blobs requested in each listing chunk. Default 660 is the maximum, 5000. "List blobs" requests are permitted 2 minutes 661 per megabyte to complete. If an operation is taking longer than 2 662 minutes per megabyte on average, it will time out ( 663 [source](https://docs.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-blob-service-operations#exceptions-to-default-timeout-interval) 664 ). This can be used to limit the number of blobs items to return, to 665 avoid the time out. 666 667 Properties: 668 669 - Config: list_chunk 670 - Env Var: RCLONE_AZUREBLOB_LIST_CHUNK 671 - Type: int 672 - Default: 5000 673 674 #### --azureblob-access-tier 675 676 Access tier of blob: hot, cool, cold or archive. 677 678 Archived blobs can be restored by setting access tier to hot, cool or 679 cold. Leave blank if you intend to use default access tier, which is 680 set at account level 681 682 If there is no "access tier" specified, rclone doesn't apply any tier. 683 rclone performs "Set Tier" operation on blobs while uploading, if objects 684 are not modified, specifying "access tier" to new one will have no effect. 685 If blobs are in "archive tier" at remote, trying to perform data transfer 686 operations from remote will not be allowed. User should first restore by 687 tiering blob to "Hot", "Cool" or "Cold". 688 689 Properties: 690 691 - Config: access_tier 692 - Env Var: RCLONE_AZUREBLOB_ACCESS_TIER 693 - Type: string 694 - Required: false 695 696 #### --azureblob-archive-tier-delete 697 698 Delete archive tier blobs before overwriting. 699 700 Archive tier blobs cannot be updated. So without this flag, if you 701 attempt to update an archive tier blob, then rclone will produce the 702 error: 703 704 can't update archive tier blob without --azureblob-archive-tier-delete 705 706 With this flag set then before rclone attempts to overwrite an archive 707 tier blob, it will delete the existing blob before uploading its 708 replacement. This has the potential for data loss if the upload fails 709 (unlike updating a normal blob) and also may cost more since deleting 710 archive tier blobs early may be chargable. 711 712 713 Properties: 714 715 - Config: archive_tier_delete 716 - Env Var: RCLONE_AZUREBLOB_ARCHIVE_TIER_DELETE 717 - Type: bool 718 - Default: false 719 720 #### --azureblob-disable-checksum 721 722 Don't store MD5 checksum with object metadata. 723 724 Normally rclone will calculate the MD5 checksum of the input before 725 uploading it so it can add it to metadata on the object. This is great 726 for data integrity checking but can cause long delays for large files 727 to start uploading. 728 729 Properties: 730 731 - Config: disable_checksum 732 - Env Var: RCLONE_AZUREBLOB_DISABLE_CHECKSUM 733 - Type: bool 734 - Default: false 735 736 #### --azureblob-memory-pool-flush-time 737 738 How often internal memory buffer pools will be flushed. (no longer used) 739 740 Properties: 741 742 - Config: memory_pool_flush_time 743 - Env Var: RCLONE_AZUREBLOB_MEMORY_POOL_FLUSH_TIME 744 - Type: Duration 745 - Default: 1m0s 746 747 #### --azureblob-memory-pool-use-mmap 748 749 Whether to use mmap buffers in internal memory pool. (no longer used) 750 751 Properties: 752 753 - Config: memory_pool_use_mmap 754 - Env Var: RCLONE_AZUREBLOB_MEMORY_POOL_USE_MMAP 755 - Type: bool 756 - Default: false 757 758 #### --azureblob-encoding 759 760 The encoding for the backend. 761 762 See the [encoding section in the overview](/overview/#encoding) for more info. 763 764 Properties: 765 766 - Config: encoding 767 - Env Var: RCLONE_AZUREBLOB_ENCODING 768 - Type: Encoding 769 - Default: Slash,BackSlash,Del,Ctl,RightPeriod,InvalidUtf8 770 771 #### --azureblob-public-access 772 773 Public access level of a container: blob or container. 774 775 Properties: 776 777 - Config: public_access 778 - Env Var: RCLONE_AZUREBLOB_PUBLIC_ACCESS 779 - Type: string 780 - Required: false 781 - Examples: 782 - "" 783 - The container and its blobs can be accessed only with an authorized request. 784 - It's a default value. 785 - "blob" 786 - Blob data within this container can be read via anonymous request. 787 - "container" 788 - Allow full public read access for container and blob data. 789 790 #### --azureblob-directory-markers 791 792 Upload an empty object with a trailing slash when a new directory is created 793 794 Empty folders are unsupported for bucket based remotes, this option 795 creates an empty object ending with "/", to persist the folder. 796 797 This object also has the metadata "hdi_isfolder = true" to conform to 798 the Microsoft standard. 799 800 801 Properties: 802 803 - Config: directory_markers 804 - Env Var: RCLONE_AZUREBLOB_DIRECTORY_MARKERS 805 - Type: bool 806 - Default: false 807 808 #### --azureblob-no-check-container 809 810 If set, don't attempt to check the container exists or create it. 811 812 This can be useful when trying to minimise the number of transactions 813 rclone does if you know the container exists already. 814 815 816 Properties: 817 818 - Config: no_check_container 819 - Env Var: RCLONE_AZUREBLOB_NO_CHECK_CONTAINER 820 - Type: bool 821 - Default: false 822 823 #### --azureblob-no-head-object 824 825 If set, do not do HEAD before GET when getting objects. 826 827 Properties: 828 829 - Config: no_head_object 830 - Env Var: RCLONE_AZUREBLOB_NO_HEAD_OBJECT 831 - Type: bool 832 - Default: false 833 834 #### --azureblob-delete-snapshots 835 836 Set to specify how to deal with snapshots on blob deletion. 837 838 Properties: 839 840 - Config: delete_snapshots 841 - Env Var: RCLONE_AZUREBLOB_DELETE_SNAPSHOTS 842 - Type: string 843 - Required: false 844 - Choices: 845 - "" 846 - By default, the delete operation fails if a blob has snapshots 847 - "include" 848 - Specify 'include' to remove the root blob and all its snapshots 849 - "only" 850 - Specify 'only' to remove only the snapshots but keep the root blob. 851 852 #### --azureblob-description 853 854 Description of the remote 855 856 Properties: 857 858 - Config: description 859 - Env Var: RCLONE_AZUREBLOB_DESCRIPTION 860 - Type: string 861 - Required: false 862 863 {{< rem autogenerated options stop >}} 864 865 ### Custom upload headers 866 867 You can set custom upload headers with the `--header-upload` flag. 868 869 - Cache-Control 870 - Content-Disposition 871 - Content-Encoding 872 - Content-Language 873 - Content-Type 874 875 Eg `--header-upload "Content-Type: text/potato"` 876 877 ## Limitations 878 879 MD5 sums are only uploaded with chunked files if the source has an MD5 880 sum. This will always be the case for a local to azure copy. 881 882 `rclone about` is not supported by the Microsoft Azure Blob storage backend. Backends without 883 this capability cannot determine free space for an rclone mount or 884 use policy `mfs` (most free space) as a member of an rclone union 885 remote. 886 887 See [List of backends that do not support rclone about](https://rclone.org/overview/#optional-features) and [rclone about](https://rclone.org/commands/rclone_about/) 888 889 ## Azure Storage Emulator Support 890 891 You can run rclone with the storage emulator (usually _azurite_). 892 893 To do this, just set up a new remote with `rclone config` following 894 the instructions in the introduction and set `use_emulator` in the 895 advanced settings as `true`. You do not need to provide a default 896 account name nor an account key. But you can override them in the 897 `account` and `key` options. (Prior to v1.61 they were hard coded to 898 _azurite_'s `devstoreaccount1`.) 899 900 Also, if you want to access a storage emulator instance running on a 901 different machine, you can override the `endpoint` parameter in the 902 advanced settings, setting it to 903 `http(s)://<host>:<port>/devstoreaccount1` 904 (e.g. `http://10.254.2.5:10000/devstoreaccount1`).