28 #ifndef CPL_GOOGLE_CLOUD_INCLUDED_H
29 #define CPL_GOOGLE_CLOUD_INCLUDED_H
39 #include <curl/curl.h>
44 class VSIGSHandleHelper final:
public IVSIS3LikeHandleHelper
47 CPLString m_osEndpoint;
48 CPLString m_osBucketObjectKey;
49 CPLString m_osSecretAccessKey;
50 CPLString m_osAccessKeyId;
51 bool m_bUseHeaderFile;
52 GOA2Manager m_oManager;
55 CPLString& osSecretAccessKey,
56 CPLString& osAccessKeyId,
57 CPLString& osHeaderFile,
58 GOA2Manager& oManager);
60 static bool GetConfigurationFromConfigFile(
61 CPLString& osSecretAccessKey,
62 CPLString& osAccessKeyId,
63 CPLString& osOAuth2RefreshToken,
64 CPLString& osOAuth2ClientId,
65 CPLString& osOAuth2ClientSecret,
66 CPLString& osCredentials);
68 void RebuildURL()
override;
71 VSIGSHandleHelper(
const CPLString& osEndpoint,
72 const CPLString& osBucketObjectKey,
73 const CPLString& osSecretAccessKey,
74 const CPLString& osAccessKeyId,
76 const GOA2Manager& oManager);
79 static VSIGSHandleHelper* BuildFromURI(
const char* pszURI,
80 const char* pszFSPrefix,
83 struct curl_slist* GetCurlHeaders(
84 const CPLString& osVerbosVerb,
85 const struct curl_slist* psExistingHeaders,
86 const void *pabyDataContent =
nullptr,
87 size_t nBytesContent = 0)
const override;
89 const CPLString& GetURL()
const override {
return m_osURL; }
93 static void CleanMutex();
94 static void ClearCache();