28#ifndef CPL_GOOGLE_CLOUD_INCLUDED_H
29#define CPL_GOOGLE_CLOUD_INCLUDED_H
44class VSIGSHandleHelper final:
public IVSIS3LikeHandleHelper
49 CPLString m_osEndpoint;
50 CPLString m_osBucketObjectKey;
51 CPLString m_osSecretAccessKey;
52 CPLString m_osAccessKeyId;
53 bool m_bUseHeaderFile;
54 GOA2Manager m_oManager;
55 std::string m_osUserProject{};
58 CPLString& osSecretAccessKey,
59 CPLString& osAccessKeyId,
60 CPLString& osHeaderFile,
61 GOA2Manager& oManager);
63 static bool GetConfigurationFromConfigFile(
64 CPLString& osSecretAccessKey,
65 CPLString& osAccessKeyId,
66 CPLString& osOAuth2RefreshToken,
67 CPLString& osOAuth2ClientId,
68 CPLString& osOAuth2ClientSecret,
69 CPLString& osCredentials);
71 void RebuildURL()
override;
74 VSIGSHandleHelper(
const CPLString& osEndpoint,
75 const CPLString& osBucketObjectKey,
76 const CPLString& osSecretAccessKey,
77 const CPLString& osAccessKeyId,
79 const GOA2Manager& oManager,
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(
90 const CPLString& osVerbosVerb,
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();
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.