def METHOD_NAME() -> None:
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "--connection-string",
        help="Azure Storage connection string",
        default=os.environ.get("AZURE_STORAGE_CONNECTION_STRING"),
    )
    parser.add_argument(
        "--connection-info", help="Display Azure Storage connection info file", action="store_true"
    )
    parser.add_argument("--list-containers", help="List the containers", action="store_true")
    parser.add_argument("--container", help="Container name")
    parser.add_argument("--list", help="List the files in the container (prefix)")
    parser.add_argument("--vrt", help="Create a vrt file (prefix, suffix)", nargs=2)
    parser.add_argument("--gdaltindex", help="Create a GDAL VRT file (prefix, suffix)", nargs=2)
    parser.add_argument("--sync-upload", help="Upload local files to the container (local, azure)", nargs=2)
    parser.add_argument("--sync-download", help="Download files from the container (azure, local)", nargs=2)
    args = parser.parse_args()
    blob_service_client = BlobServiceClient.from_connection_string(args.connection_string)
    if args.connection_info:
        print(f"Azure Blob Storage version: {__version__}")
        print(f"Connected as {blob_service_client.account_name}, account information:")
        print(yaml.dump(blob_service_client.get_account_information(), Dumper=yaml.SafeDumper))
    if args.list_containers:
        for container in blob_service_client.list_containers():
            print(container["name"])
    if args.container:
        container_client = blob_service_client.get_container_client(container=args.container)
        if args.list is not None:
            print("\n".join([c["name"] for c in container_client.walk_blobs(name_starts_with=args.list)]))
        if args.vrt:
            keys = [c["name"] for c in container_client.walk_blobs(name_starts_with=args.vrt[0])]
            filtered_keys = list(filter(lambda i: i.endswith(args.vrt[1]), keys))
            full_keys = [f"/vsiaz/{args.container}/{i}" for i in filtered_keys]
            subprocess.run(
                ["gdalbuildvrt", f"/vsiaz/{args.container}/{args.vrt[0]}/index.vrt"] + full_keys,
            )
        if args.gdaltindex:
            keys = [c["name"] for c in container_client.walk_blobs(name_starts_with=args.gdaltindex[0])]
            filtered_keys = list(filter(lambda i: i.endswith(args.gdaltindex[1]), keys))
            full_keys = [f"/vsiaz/{args.container}/{i}" for i in filtered_keys]
            subprocess.run(
                ["gdaltindex", "index.shp"] + full_keys,
            )
            print("Generated files:")
            print(f"{os.getcwd()}/index.shp")
            print(f"{os.getcwd()}/index.shx")
            print(f"{os.getcwd()}/index.prj")
            print(f"{os.getcwd()}/index.dbf")
        if args.sync_upload:
            print()
            for filename in glob.glob(f"{args.sync_upload[0]}/**", recursive=True):
                if os.path.isfile(filename):
                    relative = filename[len(args.sync_upload[0]) + 1 :]
                    dest = os.path.join(args.sync_upload[1], relative) if args.sync_upload[1] else relative
                    print(f"{filename} -> {dest}")
                    blob_client = container_client.get_blob_client(blob=dest)
                    with open(filename, "rb") as data:
                        blob_client.upload_blob(data, overwrite=True)
        if args.sync_download:
            src_path = args.sync_download[0]
            if src_path and src_path[-1] != "/":
                src_path += "/"
            for c in container_client.list_blobs():
                src = c["name"]
                if src.startswith(src_path):
                    dest = os.path.join(args.sync_download[1], src[len(src_path) :])
                    print(f"{src} -> {dest}")
                    os.makedirs(os.path.dirname(dest), exist_ok=True)
                    with open(dest, "wb") as data:
                        content = container_client.get_blob_client(blob=src).download_blob().readall()
                        data.write(content)