28 #ifndef CPL_SWIFT_INCLUDED_H
29 #define CPL_SWIFT_INCLUDED_H
35 #include <curl/curl.h>
40 class VSISwiftHandleHelper final:
public IVSIS3LikeHandleHelper
43 CPLString m_osStorageURL;
44 CPLString m_osAuthToken;
46 CPLString m_osObjectKey;
48 static bool GetConfiguration(CPLString& osStorageURL,
49 CPLString& osAuthToken);
51 static CPLString BuildURL(
const CPLString& osStorageURL,
52 const CPLString& osBucket,
53 const CPLString& osObjectKey);
55 void RebuildURL()
override;
58 VSISwiftHandleHelper(
const CPLString& osStorageURL,
59 const CPLString& osAuthToken,
60 const CPLString& osBucket,
61 const CPLString& osObjectKey);
62 ~VSISwiftHandleHelper();
64 static VSISwiftHandleHelper* BuildFromURI(
const char* pszURI,
65 const char* pszFSPrefix);
67 struct curl_slist* GetCurlHeaders(
const CPLString& osVerbosVerb,
68 const struct curl_slist* psExistingHeaders,
69 const void *pabyDataContent =
nullptr,
70 size_t nBytesContent = 0)
const override;
72 const CPLString& GetURL()
const override {
return m_osURL; }
74 static void CleanMutex();
75 static void ClearCache();