func (fs *FileSystem) NewLocation(volume, absLocPath string) (vfs.Location, error) {
	if fs == nil {
		return nil, errors.New(errNilFileSystemReceiver)
	}
	if volume == "" || absLocPath == "" {
		return nil, errors.New("non-empty strings for container and path are required")
	}
	if err := utils.ValidateAbsoluteLocationPath(absLocPath); err != nil {
		return nil, err
	}
	return &Location{
		fileSystem: fs,
		container:  volume,
		path:       path.Clean(absLocPath),
	}, nil
}
NewLocation returns the azure implementation of vfs.Location
package azure
import (
	"errors"
	"fmt"
	"net/url"
	"os"
	"path"
	"regexp"
	"strings"
	"github.com/c2fo/vfs/v6"
	"github.com/c2fo/vfs/v6/backend"
	"github.com/c2fo/vfs/v6/utils"
)
const Scheme = "https"
const Name = "azure"
const errNilFileSystemReceiver = "azure.FileSystem receiver pointer must be non-nil"
type FileSystem struct {
	options *Options
	client  Client
}
func NewFileSystem() *FileSystem {
	return &FileSystem{options: NewOptions()}
}
func (fs *FileSystem) WithOptions(opts vfs.Options) *FileSystem {
	azureOpts, _ := opts.(Options)
	fs.options = &azureOpts
	return fs
}
func (fs *FileSystem) WithClient(client Client) *FileSystem {
	fs.client = client
	return fs
}
func (fs *FileSystem) Client() (Client, error) {
	if fs.client == nil {
		client, err := NewClient(fs.options)
		fs.client = client
		return fs.client, err
	}
	return fs.client, nil
}
func (fs *FileSystem) NewFile(volume, absFilePath string) (vfs.File, error) {
	if fs == nil {
		return nil, errors.New(errNilFileSystemReceiver)
	}
	if volume == "" || absFilePath == "" {
		return nil, errors.New("non-empty strings for container and path are required")
	}
	if err := utils.ValidateAbsoluteFilePath(absFilePath); err != nil {
		return nil, err
	}
	return &File{
		fileSystem: fs,
		container:  volume,
		name:       path.Clean(absFilePath),
	}, nil
}