28 #ifndef CPL_AZURE_INCLUDED_H
29 #define CPL_AZURE_INCLUDED_H
35 #include <curl/curl.h>
40 class VSIAzureBlobHandleHelper final :
public IVSIS3LikeHandleHelper
42 std::string m_osPathForOption;
51 bool m_bFromManagedIdentities;
52 bool m_bIncludeMSVersion =
true;
60 static bool GetConfiguration(
const std::string &osPathForOption,
66 bool &bFromManagedIdentities);
73 void RebuildURL()
override;
76 VSIAzureBlobHandleHelper(
77 const std::string &osPathForOption,
const CPLString &osEndpoint,
81 bool bFromManagedIdentities);
82 ~VSIAzureBlobHandleHelper();
84 static VSIAzureBlobHandleHelper *
85 BuildFromURI(
const char *pszURI,
const char *pszFSPrefix,
88 void SetIncludeMSVersion(
bool bInclude)
90 m_bIncludeMSVersion = bInclude;
94 GetCurlHeaders(
const CPLString &osVerbosVerb,
95 const struct curl_slist *psExistingHeaders,
96 const void *pabyDataContent =
nullptr,
97 size_t nBytesContent = 0)
const override;
106 static void ClearCache();
108 std::string GetSASQueryString()
const;
110 const CPLString &GetStorageAccount()
const
112 return m_osStorageAccount;
123 int GetAzureBufferSize();