azureblob: fix permission error on SAS URL limited to container
Before this change, for some operations, eg rcat or copyto (of a file) rclone would attempt to create the container when using a SAS URL limited to a container. After this change we assume the container does not need creating when using a container SAS URL. See: https://forum.rclone.org/t/rclone-rcat-azure-blob-container-sas-token-403-error/16286
This commit is contained in:
parent
e91b509578
commit
d342f9f942
1 changed files with 4 additions and 0 deletions
|
@ -866,6 +866,10 @@ func (f *Fs) Mkdir(ctx context.Context, dir string) error {
|
||||||
// makeContainer creates the container if it doesn't exist
|
// makeContainer creates the container if it doesn't exist
|
||||||
func (f *Fs) makeContainer(ctx context.Context, container string) error {
|
func (f *Fs) makeContainer(ctx context.Context, container string) error {
|
||||||
return f.cache.Create(container, func() error {
|
return f.cache.Create(container, func() error {
|
||||||
|
// If this is a SAS URL limited to a container then assume it is already created
|
||||||
|
if f.isLimited {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
// now try to create the container
|
// now try to create the container
|
||||||
return f.pacer.Call(func() (bool, error) {
|
return f.pacer.Call(func() (bool, error) {
|
||||||
_, err := f.cntURL(container).Create(ctx, azblob.Metadata{}, azblob.PublicAccessNone)
|
_, err := f.cntURL(container).Create(ctx, azblob.Metadata{}, azblob.PublicAccessNone)
|
||||||
|
|
Loading…
Reference in a new issue