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`).