From d342f9f942ce34acc077be85defc316d15657d55 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Wed, 13 May 2020 09:11:51 +0100 Subject: [PATCH] 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 --- backend/azureblob/azureblob.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/azureblob/azureblob.go b/backend/azureblob/azureblob.go index ec18ede00..435c4659c 100644 --- a/backend/azureblob/azureblob.go +++ b/backend/azureblob/azureblob.go @@ -866,6 +866,10 @@ func (f *Fs) Mkdir(ctx context.Context, dir string) error { // makeContainer creates the container if it doesn't exist func (f *Fs) makeContainer(ctx context.Context, container string) 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 return f.pacer.Call(func() (bool, error) { _, err := f.cntURL(container).Create(ctx, azblob.Metadata{}, azblob.PublicAccessNone)