13 #ifndef ROOT_TS3HTTPRequest
14 #define ROOT_TS3HTTPRequest
45 class TS3HTTPRequest :
public TObject {
49 enum EHTTPVerb { kGET, kPOST, kPUT, kDELETE, kHEAD, kCOPY };
50 enum EAuthType { kNoAuth, kAmazon, kGoogle };
61 TString fSessionToken;
65 TString HTTPVerbToTString(EHTTPVerb httpVerb)
const;
66 TString MakeRequestLine(TS3HTTPRequest::EHTTPVerb httpVerb)
const;
67 TString MakeAuthHeader(TS3HTTPRequest::EHTTPVerb httpVerb)
const;
68 TString ComputeSignature(TS3HTTPRequest::EHTTPVerb httpVerb)
const;
69 TString MakeAuthPrefix()
const;
70 TString MakeHostHeader()
const;
71 TString MakeDateHeader()
const;
72 TString MakeTokenHeader()
const;
73 TS3HTTPRequest& SetTimeStamp();
78 TS3HTTPRequest(EHTTPVerb httpVerb,
const TString& host,
79 const TString& bucket,
const TString& objectKey,
80 EAuthType authType,
const TString& accessKey,
81 const TString& secretKey);
82 TS3HTTPRequest(
const TS3HTTPRequest& m);
83 virtual ~TS3HTTPRequest() { }
85 EHTTPVerb GetHTTPVerb()
const {
return fVerb; }
86 const TString& GetHost()
const {
return fHost; }
87 const TString& GetBucket()
const {
return fBucket; }
88 const TString& GetObjectKey()
const {
return fObjectKey; }
89 const TString& GetTimeStamp()
const {
return fTimeStamp; }
90 const TString& GetAccessKey()
const {
return fAccessKey; }
91 const TString& GetSecretKey()
const {
return fSecretKey; }
92 TString GetAuthType()
const {
return fAuthType; }
93 TString GetRequest(TS3HTTPRequest::EHTTPVerb httpVerb, Bool_t appendCRLF=kTRUE);
95 TS3HTTPRequest& SetHost(
const TString& host);
96 TS3HTTPRequest& SetBucket(
const TString& bucket);
97 TS3HTTPRequest& SetObjectKey(
const TString& objectKey);
98 TS3HTTPRequest& SetAccessKey(
const TString& accessKey);
99 TS3HTTPRequest& SetSecretKey(
const TString& secretKey);
100 TS3HTTPRequest& SetAuthKeys(
const TString& accessKey,
const TString& secretKey);
101 TS3HTTPRequest& SetAuthType(TS3HTTPRequest::EAuthType authType);
102 TS3HTTPRequest& SetSessionToken(
const TString& token);
104 ClassDef(TS3HTTPRequest, 0)
114 inline TS3HTTPRequest& TS3HTTPRequest::SetHost(
const TString& host)
120 inline TS3HTTPRequest& TS3HTTPRequest::SetBucket(
const TString& bucket)
126 inline TS3HTTPRequest& TS3HTTPRequest::SetObjectKey(
const TString& objectKey)
128 fObjectKey = objectKey;
132 inline TS3HTTPRequest& TS3HTTPRequest::SetAuthKeys(
const TString& accessKey,
const TString& secretKey)
134 fAccessKey = accessKey;
135 fSecretKey = secretKey;
139 inline TS3HTTPRequest& TS3HTTPRequest::SetAuthType(TS3HTTPRequest::EAuthType authType)
141 fAuthType = authType;
145 inline TS3HTTPRequest& TS3HTTPRequest::SetAccessKey(
const TString& accessKey)
147 fAccessKey = accessKey;
151 inline TS3HTTPRequest& TS3HTTPRequest::SetSecretKey(
const TString& secretKey)
153 fSecretKey = secretKey;
157 inline TS3HTTPRequest& TS3HTTPRequest::SetSessionToken(
const TString& token)
159 fSessionToken = token;