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
53 bool m_bUseHeaderFile;
55 std::string m_osUserProject{};
63 static bool GetConfigurationFromConfigFile(
71 void RebuildURL()
override;
74 VSIGSHandleHelper(
const CPLString& osEndpoint,
80 const std::string& osUserProject);
83 static VSIGSHandleHelper* BuildFromURI(
const char* pszURI,
84 const char* pszFSPrefix,
87 bool UsesHMACKey()
const;
89 struct curl_slist* GetCurlHeaders(
91 const struct curl_slist* psExistingHeaders,
92 const void *pabyDataContent =
nullptr,
93 size_t nBytesContent = 0)
const override;
95 const CPLString& GetURL()
const override {
return m_osURL; }
97 CPLString GetCopySourceHeader()
const override {
return "x-goog-copy-source"; }
98 const char* GetMetadataDirectiveREPLACE()
const override {
return "x-goog-metadata-directive: REPLACE"; }
102 static void CleanMutex();
103 static void ClearCache();
Convenient string class based on std::string.
Definition: cpl_string.h:333
Manager of Google OAuth2 authentication.
Definition: cpl_http.h:197
Interface for downloading HTTP, FTP documents.
#define CPL_DISALLOW_COPY_ASSIGN(ClassName)
Helper to remove the copy and assignment constructors so that the compiler will not generate the defa...
Definition: cpl_port.h:955
char ** CSLConstList
Type of a constant null-terminated list of nul terminated strings.
Definition: cpl_port.h:1169
Various convenience functions for working with strings and string lists.