mirror of
https://github.com/rclone/rclone.git
synced 2025-02-16 18:41:54 +01:00
azureblob: allow anonymous access for public resources
See: https://forum.rclone.org/t/azure-blob-public-resources/46882
This commit is contained in:
parent
5287a9b5fa
commit
4824837eed
@ -711,10 +711,11 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e
|
|||||||
ClientOptions: policyClientOptions,
|
ClientOptions: policyClientOptions,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Here we auth by setting one of cred, sharedKeyCred or f.svc
|
// Here we auth by setting one of cred, sharedKeyCred, f.svc or anonymous
|
||||||
var (
|
var (
|
||||||
cred azcore.TokenCredential
|
cred azcore.TokenCredential
|
||||||
sharedKeyCred *service.SharedKeyCredential
|
sharedKeyCred *service.SharedKeyCredential
|
||||||
|
anonymous = false
|
||||||
)
|
)
|
||||||
switch {
|
switch {
|
||||||
case opt.EnvAuth:
|
case opt.EnvAuth:
|
||||||
@ -874,6 +875,9 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to acquire MSI token: %w", err)
|
return nil, fmt.Errorf("failed to acquire MSI token: %w", err)
|
||||||
}
|
}
|
||||||
|
case opt.Account != "":
|
||||||
|
// Anonymous access
|
||||||
|
anonymous = true
|
||||||
default:
|
default:
|
||||||
return nil, errors.New("no authentication method configured")
|
return nil, errors.New("no authentication method configured")
|
||||||
}
|
}
|
||||||
@ -903,6 +907,12 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("create client failed: %w", err)
|
return nil, fmt.Errorf("create client failed: %w", err)
|
||||||
}
|
}
|
||||||
|
} else if anonymous {
|
||||||
|
// Anonymous public access
|
||||||
|
f.svc, err = service.NewClientWithNoCredential(opt.Endpoint, &clientOpt)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("create public client failed: %w", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if f.svc == nil {
|
if f.svc == nil {
|
||||||
|
@ -289,6 +289,13 @@ be explicitly specified using exactly one of the `msi_object_id`,
|
|||||||
If none of `msi_object_id`, `msi_client_id`, or `msi_mi_res_id` is
|
If none of `msi_object_id`, `msi_client_id`, or `msi_mi_res_id` is
|
||||||
set, this is is equivalent to using `env_auth`.
|
set, this is is equivalent to using `env_auth`.
|
||||||
|
|
||||||
|
#### Anonymous {#anonymous}
|
||||||
|
|
||||||
|
If you want to access resources with public anonymous access then set
|
||||||
|
`account` only. You can do this without making an rclone config:
|
||||||
|
|
||||||
|
rclone lsf :azureblob,account=ACCOUNT:CONTAINER
|
||||||
|
|
||||||
{{< rem autogenerated options start" - DO NOT EDIT - instead edit fs.RegInfo in backend/azureblob/azureblob.go then run make backenddocs" >}}
|
{{< rem autogenerated options start" - DO NOT EDIT - instead edit fs.RegInfo in backend/azureblob/azureblob.go then run make backenddocs" >}}
|
||||||
### Standard options
|
### Standard options
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user