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
46 CPL_DISALLOW_COPY_ASSIGN(VSIGSHandleHelper)
49 CPLString m_osEndpoint;
50 CPLString m_osBucketObjectKey;
51 CPLString m_osSecretAccessKey;
52 CPLString m_osAccessKeyId;
53 bool m_bUseHeaderFile;
54 GOA2Manager m_oManager;
57 CPLString& osSecretAccessKey,
58 CPLString& osAccessKeyId,
59 CPLString& osHeaderFile,
60 GOA2Manager& oManager);
62 static bool GetConfigurationFromConfigFile(
63 CPLString& osSecretAccessKey,
64 CPLString& osAccessKeyId,
65 CPLString& osOAuth2RefreshToken,
66 CPLString& osOAuth2ClientId,
67 CPLString& osOAuth2ClientSecret,
68 CPLString& osCredentials);
70 void RebuildURL()
override;
73 VSIGSHandleHelper(
const CPLString& osEndpoint,
74 const CPLString& osBucketObjectKey,
75 const CPLString& osSecretAccessKey,
76 const CPLString& osAccessKeyId,
78 const GOA2Manager& oManager);
81 static VSIGSHandleHelper* BuildFromURI(
const char* pszURI,
82 const char* pszFSPrefix,
85 struct curl_slist* GetCurlHeaders(
86 const CPLString& osVerbosVerb,
87 const struct curl_slist* psExistingHeaders,
88 const void *pabyDataContent =
nullptr,
89 size_t nBytesContent = 0)
const override;
91 const CPLString& GetURL()
const override {
return m_osURL; }
95 static void CleanMutex();
96 static void ClearCache();