28 #ifndef CPL_AZURE_INCLUDED_H
29 #define CPL_AZURE_INCLUDED_H
35 #include <curl/curl.h>
40 class VSIAzureBlobHandleHelper final:
public IVSIS3LikeHandleHelper
43 CPLString m_osEndpoint;
44 CPLString m_osBlobEndpoint;
46 CPLString m_osObjectKey;
47 CPLString m_osStorageAccount;
48 CPLString m_osStorageKey;
53 CPLString& osEndpoint,
54 CPLString& osBlobEndpoint,
55 CPLString& osStorageAccount,
56 CPLString& osStorageKey);
58 static CPLString BuildURL(
const CPLString& osEndpoint,
59 const CPLString& osBlobEndpoint,
60 const CPLString& osStorageAccount,
61 const CPLString& osBucket,
62 const CPLString& osObjectKey,
65 void RebuildURL()
override;
68 VSIAzureBlobHandleHelper(
const CPLString& osEndpoint,
69 const CPLString& osBlobEndpoint,
70 const CPLString& osBucket,
71 const CPLString& osObjectKey,
72 const CPLString& osStorageAccount,
73 const CPLString& osStorageKey,
75 ~VSIAzureBlobHandleHelper();
77 static VSIAzureBlobHandleHelper* BuildFromURI(
const char* pszURI,
78 const char* pszFSPrefix,
81 struct curl_slist* GetCurlHeaders(
const CPLString& osVerbosVerb,
82 const struct curl_slist* psExistingHeaders,
83 const void *pabyDataContent =
nullptr,
84 size_t nBytesContent = 0)
const override;
86 const CPLString& GetURL()
const override {
return m_osURL; }