31 #ifndef CPL_ALIBABA_OSS_INCLUDED_H
32 #define CPL_ALIBABA_OSS_INCLUDED_H
42 #include <curl/curl.h>
46 class VSIOSSHandleHelper final:
public IVSIS3LikeHandleHelper
55 bool m_bUseVirtualHosting;
57 void RebuildURL()
override;
66 VSIOSSHandleHelper(
const CPLString& osSecretAccessKey,
71 bool bUseHTTPS,
bool bUseVirtualHosting);
72 ~VSIOSSHandleHelper();
74 static VSIOSSHandleHelper* BuildFromURI(
const char* pszURI,
75 const char* pszFSPrefix,
81 bool bUseHTTPS,
bool bUseVirtualHosting);
83 struct curl_slist* GetCurlHeaders(
85 const struct curl_slist* psExistingHeaders,
86 const void *pabyDataContent =
nullptr,
87 size_t nBytesContent = 0 )
const override;
89 bool CanRestartOnError(
const char*,
const char* pszHeaders,
91 bool* pbUpdateMap =
nullptr)
override;
93 const CPLString& GetURL()
const override {
return m_osURL; }
94 const CPLString& GetBucket()
const {
return m_osBucket; }
95 const CPLString& GetObjectKey()
const {
return m_osObjectKey; }
96 const CPLString& GetEndpoint()
const {
return m_osEndpoint; }
97 bool GetVirtualHosting()
const {
return m_bUseVirtualHosting; }
99 void SetVirtualHosting(
bool b);
104 class VSIOSSUpdateParams
109 VSIOSSUpdateParams() {}
111 explicit VSIOSSUpdateParams(
const VSIOSSHandleHelper* poHelper) :
112 m_osEndpoint(poHelper->GetEndpoint()) {}
114 void UpdateHandlerHelper(VSIOSSHandleHelper* poHelper) {
115 poHelper->SetEndpoint(m_osEndpoint);
unsigned char GByte
Definition: cpl_port.h:213
const char * CSLFetchNameValueDef(CSLConstList papszStrList, const char *pszName, const char *pszDefault)
Definition: cpl_string.cpp:1646
Convenient string class based on std::string.
Definition: cpl_string.h:336
CPLXMLNode * CPLParseXMLString(const char *)
Parse an XML string into tree form.
Definition: cpl_minixml.cpp:614
Definition: cpl_minixml.h:66
#define CPL_FRMT_GIB
Definition: cpl_port.h:314
#define EQUAL(a, b)
Definition: cpl_port.h:559
bool CPLTestBool(const char *pszValue)
Definition: cpl_string.cpp:1526
char ** CSLConstList
Definition: cpl_port.h:1184
char * CPLBase64Encode(int nBytes, const GByte *pabyData)
Definition: cpl_base64.cpp:199
void CPLDestroyXMLNode(CPLXMLNode *)
Destroy a tree.
Definition: cpl_minixml.cpp:1412
void CPLDebug(const char *, const char *,...)
Definition: cpl_error.cpp:544
#define STARTS_WITH(a, b)
Definition: cpl_port.h:568
const char * CPLSPrintf(const char *fmt,...)
Definition: cpl_string.cpp:977
const char * CPLGetXMLValue(const CPLXMLNode *poRoot, const char *pszPath, const char *pszDefault)
Fetch element/attribute value.
Definition: cpl_minixml.cpp:1645
long long GIntBig
Definition: cpl_port.h:246
const char * CSLFetchNameValue(CSLConstList papszStrList, const char *pszName)
Definition: cpl_string.cpp:1674
#define CPLFree
Definition: cpl_conv.h:81
const char * CPLGetConfigOption(const char *, const char *)
Definition: cpl_conv.cpp:1690
Generated for GDAL by
1.8.17.