A TS3WebFile is a TWebFile which retrieves the file contents from a web server implementing the REST API of the Amazon S3 protocol.
This class is meant to be as generic as possible to be used with files hosted not only by Amazon S3 servers but also by other providers implementing the core of the S3 protocol.
The S3 protocol works on top of HTTPS (and HTTP) and imposes that each HTTP request be signed using a specific convention: the request must include an 'Authorization' header which contains the signature of a concatenation of selected request fields. For signing the request, an 'Access Key Id' and a 'Secret Access Key' need to be known. These keys are used by the S3 servers to identify the client and to authenticate the request as genuine.
As an end user, you must know the Access Key and Secret Access Key in order to access each S3 file. They are provided to you by your S3 service provider. Those two keys can be provided to ROOT when initializing an object of this class by two means: a. by using the environmental variables S3_ACCESS_KEY and S3_SECRET_KEY, or b. by specifying them when opening each file.
You can use AWS temporary security credentials (temporary access key and secret access key), but you must also give the associated session token. The token may be set in the S3_SESSION_TOKEN environmental variable, or on open in the TOKEN option.
The first method is convenient if all the S3 files you want to access are hosted by a single provider. The second one is more flexible as it allows you to specify which credentials to use on a per-file basis. See the documentation of the constructor of this class for details on the syntax.
For generating and signing the HTTP request, this class uses TS3HTTPRequest.
For more information on the details of S3 protocol please refer to: "Amazon Simple Storage Service Developer Guide": http://docs.amazonwebservices.com/AmazonS3/latest/dev/Welcome.html
"Amazon Simple Storage Service REST API Reference" http://docs.amazonwebservices.com/AmazonS3/latest/API/APIRest.html
Definition at line 68 of file TS3WebFile.h.
Public Member Functions | |
TS3WebFile (const char *url, Option_t *options="") | |
Construct a TS3WebFile object. | |
virtual | ~TS3WebFile () |
const TString & | GetAccessKey () const |
const TString & | GetBucket () const |
const TString & | GetObjectKey () const |
const TString & | GetSecretKey () const |
const TUrl & | GetUrl () const |
TClass * | IsA () const override |
Bool_t | ReadBuffers (char *buf, Long64_t *pos, Int_t *len, Int_t nbuf) override |
Read the nbuf blocks described in arrays pos and len. | |
void | Streamer (TBuffer &) override |
Stream a TFile object. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
![]() | |
TWebFile (const char *url, Option_t *opt="") | |
Create a Web file object. | |
TWebFile (TUrl url, Option_t *opt="") | |
Create a Web file object. | |
virtual | ~TWebFile () |
Cleanup. | |
void | Close (Option_t *option="") override |
Close a Web file. | |
Long64_t | GetSize () const override |
Return maximum file size. | |
TClass * | IsA () const override |
Bool_t | IsOpen () const override |
A TWebFile that has been correctly constructed is always considered open. | |
Bool_t | ReadBuffer (char *buf, Int_t len) override |
Read specified byte range from remote file via HTTP daemon. | |
Bool_t | ReadBuffer (char *buf, Long64_t pos, Int_t len) override |
Read specified byte range from remote file via HTTP daemon. | |
Bool_t | ReadBuffers (char *buf, Long64_t *pos, Int_t *len, Int_t nbuf) override |
Read specified byte ranges from remote file via HTTP daemon. | |
Int_t | ReOpen (Option_t *mode) override |
Reopen a file with a different access mode, like from READ to UPDATE or from NEW, CREATE, RECREATE, UPDATE to READ. | |
void | Seek (Long64_t offset, ERelativeTo pos=kBeg) override |
Set position from where to start reading. | |
void | Streamer (TBuffer &) override |
Stream a TFile object. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
![]() | |
TFile () | |
File default Constructor. | |
TFile (const char *fname, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault) | |
Opens or creates a local ROOT file. | |
~TFile () override | |
File destructor. | |
void | Copy (TObject &) const override |
Copy this to obj. | |
virtual Bool_t | Cp (const char *dst, Bool_t progressbar=kTRUE, UInt_t buffersize=1000000) |
Allows to copy this file to the dst URL. | |
virtual TKey * | CreateKey (TDirectory *mother, const TObject *obj, const char *name, Int_t bufsize) |
Creates key for object and converts data to buffer. | |
virtual TKey * | CreateKey (TDirectory *mother, const void *obj, const TClass *cl, const char *name, Int_t bufsize) |
Creates key for object and converts data to buffer. | |
void | Delete (const char *namecycle="") override |
Delete object namecycle. | |
void | Draw (Option_t *option="") override |
Fill Graphics Structure and Paint. | |
virtual void | DrawMap (const char *keys="*", Option_t *option="") |
Draw map of objects in this file. | |
void | FillBuffer (char *&buffer) override |
Encode file output buffer. | |
virtual void | Flush () |
Synchronize a file's in-memory and on-disk states. | |
TArchiveFile * | GetArchive () const |
Long64_t | GetArchiveOffset () const |
Int_t | GetBestBuffer () const |
Return the best buffer size of objects on this file. | |
virtual Long64_t | GetBytesRead () const |
virtual Long64_t | GetBytesReadExtra () const |
virtual Int_t | GetBytesToPrefetch () const |
Max number of bytes to prefetch. | |
virtual Long64_t | GetBytesWritten () const |
Return the total number of bytes written so far to the file. | |
TFileCacheRead * | GetCacheRead (const TObject *tree=nullptr) const |
Return a pointer to the current read cache. | |
TFileCacheWrite * | GetCacheWrite () const |
Return a pointer to the current write cache. | |
TArrayC * | GetClassIndex () const |
Int_t | GetCompressionAlgorithm () const |
Float_t | GetCompressionFactor () |
Return the file compression factor. | |
Int_t | GetCompressionLevel () const |
Int_t | GetCompressionSettings () const |
virtual Long64_t | GetEND () const |
virtual const TUrl * | GetEndpointUrl () const |
virtual Int_t | GetErrno () const |
Method returning errno. | |
Int_t | GetFd () const |
TList * | GetListOfFree () const |
TObjArray * | GetListOfProcessIDs () const |
virtual Int_t | GetNbytesFree () const |
virtual Int_t | GetNbytesInfo () const |
virtual TString | GetNewUrl () |
virtual Int_t | GetNfree () const |
virtual Int_t | GetNProcessIDs () const |
Option_t * | GetOption () const override |
virtual Int_t | GetReadCalls () const |
Int_t | GetRecordHeader (char *buf, Long64_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen) |
Read the logical record header starting at a certain postion. | |
Long64_t | GetRelOffset () const |
virtual Long64_t | GetSeekFree () const |
virtual Long64_t | GetSeekInfo () const |
const TList * | GetStreamerInfoCache () |
Returns the cached list of StreamerInfos used in this file. | |
virtual TList * | GetStreamerInfoList () final |
Read the list of TStreamerInfo objects written to this file. | |
Int_t | GetVersion () const |
virtual void | IncrementProcessIDs () |
virtual Bool_t | IsArchive () const |
Bool_t | IsBinary () const |
Bool_t | IsRaw () const |
void | ls (Option_t *option="") const override |
List file contents. | |
virtual void | MakeFree (Long64_t first, Long64_t last) |
Mark unused bytes on the file. | |
virtual void | MakeProject (const char *dirname, const char *classes="*", Option_t *option="new") |
Generate source code necessary to access the objects stored in the file. | |
virtual void | Map () |
virtual void | Map (Option_t *opt) |
List the contents of a file sequentially. | |
virtual Bool_t | Matches (const char *name) |
Return kTRUE if 'url' matches the coordinates of this file. | |
virtual Bool_t | MustFlush () const |
void | Paint (Option_t *option="") override |
Paint all objects in the file. | |
void | Print (Option_t *option="") const override |
Print all objects in the file. | |
virtual Bool_t | ReadBufferAsync (Long64_t offs, Int_t len) |
virtual void | ReadFree () |
Read the FREE linked list. | |
virtual TProcessID * | ReadProcessID (UShort_t pidf) |
The TProcessID with number pidf is read from this file. | |
virtual void | ReadStreamerInfo () |
Read the list of StreamerInfo from this file. | |
virtual Int_t | Recover () |
Attempt to recover file if not correctly closed. | |
virtual void | ResetErrno () const |
Method resetting the errno. | |
virtual void | SetCacheRead (TFileCacheRead *cache, TObject *tree=nullptr, ECacheAction action=kDisconnect) |
Set a pointer to the read cache. | |
virtual void | SetCacheWrite (TFileCacheWrite *cache) |
Set a pointer to the write cache. | |
virtual void | SetCompressionAlgorithm (Int_t algorithm=ROOT::RCompressionSetting::EAlgorithm::kUseGlobal) |
See comments for function SetCompressionSettings. | |
virtual void | SetCompressionLevel (Int_t level=ROOT::RCompressionSetting::ELevel::kUseMin) |
See comments for function SetCompressionSettings. | |
virtual void | SetCompressionSettings (Int_t settings=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault) |
Used to specify the compression level and algorithm. | |
virtual void | SetEND (Long64_t last) |
virtual void | SetOffset (Long64_t offset, ERelativeTo pos=kBeg) |
Set position from where to start reading. | |
virtual void | SetOption (Option_t *option=">") |
virtual void | SetReadCalls (Int_t readcalls=0) |
virtual void | ShowStreamerInfo () |
Show the StreamerInfo of all classes written to this file. | |
Int_t | Sizeof () const override |
Return the size in bytes of the file header. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
void | SumBuffer (Int_t bufsize) |
Increment statistics for buffer sizes of objects in this file. | |
Int_t | Write (const char *name=nullptr, Int_t opt=0, Int_t bufsiz=0) const override |
One can not save a const TDirectory object. | |
Int_t | Write (const char *name=nullptr, Int_t opt=0, Int_t bufsiz=0) override |
Write memory objects to this file. | |
virtual Bool_t | WriteBuffer (const char *buf, Int_t len) |
Write a buffer to the file. | |
virtual void | WriteFree () |
Write FREE linked list on the file. | |
virtual void | WriteHeader () |
Write File Header. | |
virtual UShort_t | WriteProcessID (TProcessID *pid) |
Check if the ProcessID pidd is already in the file, if not, add it and return the index number in the local file list. | |
virtual void | WriteStreamerInfo () |
Write the list of TStreamerInfo as a single object in this file The class Streamer description for all classes written to this file is saved. | |
![]() | |
TDirectoryFile () | |
Default TDirectoryFile constructor. | |
TDirectoryFile (const char *name, const char *title, Option_t *option="", TDirectory *motherDir=nullptr) | |
Create a new TDirectoryFile. | |
~TDirectoryFile () override | |
Destructor. | |
void | Add (TObject *obj, Bool_t replace=kFALSE) override |
void | Append (TObject *obj, Bool_t replace=kFALSE) override |
Append object to this directory. | |
Int_t | AppendKey (TKey *key) override |
Insert key in the linked list of keys of this directory. | |
void | Browse (TBrowser *b) override |
Browse the content of the directory. | |
void | Build (TFile *motherFile=nullptr, TDirectory *motherDir=nullptr) override |
Bool_t | cd () override |
Change current directory to "this" directory. | |
Bool_t | cd (const char *path) override |
Change current directory the directory described by the path if given one. | |
TObject * | CloneObject (const TObject *obj, Bool_t autoadd=kTRUE) override |
Make a clone of an object using the Streamer facility. | |
TKey * | FindKey (const char *keyname) const override |
Find key with name keyname in the current directory. | |
TKey * | FindKeyAny (const char *keyname) const override |
Find key with name keyname in the current directory or its subdirectories. | |
TObject * | FindObjectAny (const char *name) const override |
Find object by name in the list of memory objects of the current directory or its sub-directories. | |
TObject * | FindObjectAnyFile (const char *name) const override |
Scan the memory lists of all files for an object with name. | |
template<class T > | |
T * | Get (const char *namecycle) |
See documentation of TDirectoryFile::Get(const char *namecycle) | |
TObject * | Get (const char *namecycle) override |
Return pointer to object identified by namecycle. | |
Int_t | GetBufferSize () const override |
Return the buffer size to create new TKeys. | |
const TDatime & | GetCreationDate () const |
TDirectory * | GetDirectory (const char *apath, Bool_t printError=false, const char *funcname="GetDirectory") override |
Find a directory named "apath". | |
TFile * | GetFile () const override |
TKey * | GetKey (const char *name, Short_t cycle=9999) const override |
Return pointer to key with name,cycle. | |
TList * | GetListOfKeys () const override |
const TDatime & | GetModificationDate () const |
Int_t | GetNbytesKeys () const override |
Int_t | GetNkeys () const override |
void * | GetObjectChecked (const char *namecycle, const char *classname) override |
See documentation of TDirectoryFile::GetObjectCheck(const char *namecycle, const TClass *cl) | |
void * | GetObjectChecked (const char *namecycle, const TClass *cl) override |
Return pointer to object identified by namecycle if and only if the actual object is a type suitable to be stored as a pointer to a "expectedClass" If expectedClass is null, no check is performed. | |
void * | GetObjectUnchecked (const char *namecycle) override |
Return pointer to object identified by namecycle. | |
Long64_t | GetSeekDir () const override |
Long64_t | GetSeekKeys () const override |
Long64_t | GetSeekParent () const override |
Bool_t | IsModified () const override |
Bool_t | IsWritable () const override |
TDirectory * | mkdir (const char *name, const char *title="", Bool_t returnExistingDirectory=kFALSE) override |
Create a sub-directory "a" or a hierarchy of sub-directories "a/b/c/...". | |
TFile * | OpenFile (const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0) override |
Interface to TFile::Open. | |
void | Purge (Short_t nkeep=1) override |
Purge lowest key cycles in a directory. | |
void | ReadAll (Option_t *option="") override |
Read objects from a ROOT file directory into memory. | |
Int_t | ReadKeys (Bool_t forceRead=kTRUE) override |
Read the linked list of keys. | |
Int_t | ReadTObject (TObject *obj, const char *keyname) override |
Read object with keyname from the current directory. | |
virtual void | ResetAfterMerge (TFileMergeInfo *) |
Reset the TDirectory after its content has been merged into another Directory. | |
void | rmdir (const char *name) override |
Removes subdirectory from the directory. | |
void | Save () override |
Save recursively all directory keys and headers. | |
Int_t | SaveObjectAs (const TObject *obj, const char *filename="", Option_t *option="") const override |
Save object in filename. | |
void | SaveSelf (Bool_t force=kFALSE) override |
Save Directory keys and header. | |
void | SetBufferSize (Int_t bufsize) override |
Set the default buffer size when creating new TKeys. | |
void | SetModified () override |
void | SetSeekDir (Long64_t v) override |
void | SetTRefAction (TObject *ref, TObject *parent) override |
Find the action to be executed in the dictionary of the parent class and store the corresponding exec number into fBits. | |
void | SetWritable (Bool_t writable=kTRUE) override |
Set the new value of fWritable recursively. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
void | WriteDirHeader () override |
Overwrite the Directory header record. | |
void | WriteKeys () override |
Write Keys linked list on the file. | |
Int_t | WriteObjectAny (const void *obj, const char *classname, const char *name, Option_t *option="", Int_t bufsize=0) override |
Write object from pointer of class classname in this directory. | |
Int_t | WriteObjectAny (const void *obj, const TClass *cl, const char *name, Option_t *option="", Int_t bufsize=0) override |
Write object of class with dictionary cl in this directory. | |
Int_t | WriteTObject (const TObject *obj, const char *name=nullptr, Option_t *option="", Int_t bufsize=0) override |
Write object obj to this directory. | |
![]() | |
TDirectory () | |
Directory default constructor. | |
TDirectory (const char *name, const char *title, Option_t *option="", TDirectory *motherDir=nullptr) | |
Create a new Directory. | |
virtual | ~TDirectory () |
Destructor. | |
void | Clear (Option_t *option="") override |
Delete all objects from a Directory list. | |
virtual void | DeleteAll (Option_t *option="") |
Delete all objects from memory. | |
TObject * | FindObject (const char *name) const override |
Find object by name in the list of memory objects. | |
TObject * | FindObject (const TObject *obj) const override |
Find object in the list of memory objects. | |
template<class T > | |
T * | Get (const char *namecycle) |
See documentation of TDirectoryFile::Get(const char *namecycle) | |
virtual TList * | GetList () const |
TObject * | GetMother () const |
TDirectory * | GetMotherDir () const |
template<class T > | |
void | GetObject (const char *namecycle, T *&ptr) |
Get an object with proper type checking. | |
virtual const char * | GetPath () const |
Returns the full path of the directory. | |
virtual const char * | GetPathStatic () const |
Returns the full path of the directory. | |
TUUID | GetUUID () const |
Bool_t | IsBuilt () const |
Bool_t | IsFolder () const override |
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). | |
virtual void | pwd () const |
Print the path of the directory. | |
void | RecursiveRemove (TObject *obj) override |
Recursively remove object from a Directory. | |
virtual TObject * | Remove (TObject *) |
Remove an object from the in-memory list. | |
virtual void | SetMother (TObject *mother) |
void | SetName (const char *newname) override |
Set the name for directory If the directory name is changed after the directory was written once, ROOT currently would NOT change the name of correspondent key in the mother directory. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
template<typename T > | |
std::enable_if_t<!std::is_base_of< TObject, T >::value, Int_t > | WriteObject (const T *obj, const char *name, Option_t *option="", Int_t bufsize=0) |
Write an object with proper type checking. | |
template<typename T > | |
std::enable_if_t< std::is_base_of< TObject, T >::value, Int_t > | WriteObject (const T *obj, const char *name, Option_t *option="", Int_t bufsize=0) |
Write an object with proper type checking. | |
![]() | |
TNamed () | |
TNamed (const char *name, const char *title) | |
TNamed (const TNamed &named) | |
TNamed copy ctor. | |
TNamed (const TString &name, const TString &title) | |
virtual | ~TNamed () |
TNamed destructor. | |
void | Clear (Option_t *option="") override |
Set name and title to empty strings (""). | |
TObject * | Clone (const char *newname="") const override |
Make a clone of an object using the Streamer facility. | |
Int_t | Compare (const TObject *obj) const override |
Compare two TNamed objects. | |
void | Copy (TObject &named) const override |
Copy this to obj. | |
const char * | GetName () const override |
Returns name of object. | |
const char * | GetTitle () const override |
Returns title of object. | |
ULong_t | Hash () const override |
Return hash value for this object. | |
Bool_t | IsSortable () const override |
void | ls (Option_t *option="") const override |
List TNamed name and title. | |
TNamed & | operator= (const TNamed &rhs) |
TNamed assignment operator. | |
void | Print (Option_t *option="") const override |
Print TNamed name and title. | |
virtual void | SetNameTitle (const char *name, const char *title) |
Set all the TNamed parameters (name and title). | |
virtual void | SetTitle (const char *title="") |
Set the title of the TNamed. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
![]() | |
TObject () | |
TObject constructor. | |
TObject (const TObject &object) | |
TObject copy ctor. | |
virtual | ~TObject () |
TObject destructor. | |
void | AbstractMethod (const char *method) const |
Use this method to implement an "abstract" method that you don't want to leave purely abstract. | |
virtual void | AppendPad (Option_t *option="") |
Append graphics object to current pad. | |
ULong_t | CheckedHash () |
Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. | |
virtual const char * | ClassName () const |
Returns name of class to which the object belongs. | |
virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
Computes distance from point (px,py) to the object. | |
virtual void | DrawClass () const |
Draw class inheritance tree of the class to which this object belongs. | |
virtual TObject * | DrawClone (Option_t *option="") const |
Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1) . | |
virtual void | Dump () const |
Dump contents of object on stdout. | |
virtual void | Error (const char *method, const char *msgfmt,...) const |
Issue error message. | |
virtual void | Execute (const char *method, const char *params, Int_t *error=nullptr) |
Execute method on this object with the given parameter string, e.g. | |
virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr) |
Execute method on this object with parameters stored in the TObjArray. | |
virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
Execute action corresponding to an event at (px,py). | |
virtual void | Fatal (const char *method, const char *msgfmt,...) const |
Issue fatal error message. | |
virtual Option_t * | GetDrawOption () const |
Get option used by the graphics system to draw this object. | |
virtual const char * | GetIconName () const |
Returns mime type name of object. | |
virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
Returns string containing info about the object at position (px,py). | |
virtual UInt_t | GetUniqueID () const |
Return the unique object id. | |
virtual Bool_t | HandleTimer (TTimer *timer) |
Execute action in response of a timer timing out. | |
Bool_t | HasInconsistentHash () const |
Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. | |
virtual void | Info (const char *method, const char *msgfmt,...) const |
Issue info message. | |
virtual Bool_t | InheritsFrom (const char *classname) const |
Returns kTRUE if object inherits from class "classname". | |
virtual Bool_t | InheritsFrom (const TClass *cl) const |
Returns kTRUE if object inherits from TClass cl. | |
virtual void | Inspect () const |
Dump contents of this object in a graphics canvas. | |
void | InvertBit (UInt_t f) |
Bool_t | IsDestructed () const |
IsDestructed. | |
virtual Bool_t | IsEqual (const TObject *obj) const |
Default equal comparison (objects are equal if they have the same address in memory). | |
R__ALWAYS_INLINE Bool_t | IsOnHeap () const |
R__ALWAYS_INLINE Bool_t | IsZombie () const |
void | MayNotUse (const char *method) const |
Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). | |
virtual Bool_t | Notify () |
This method must be overridden to handle object notification (the base implementation is no-op). | |
void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
Use this method to declare a method obsolete. | |
void | operator delete (void *ptr) |
Operator delete. | |
void | operator delete (void *ptr, void *vp) |
Only called by placement new when throwing an exception. | |
void | operator delete[] (void *ptr) |
Operator delete []. | |
void | operator delete[] (void *ptr, void *vp) |
Only called by placement new[] when throwing an exception. | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *vp) |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, void *vp) |
TObject & | operator= (const TObject &rhs) |
TObject assignment operator. | |
virtual void | Pop () |
Pop on object drawn in a pad to the top of the display list. | |
virtual Int_t | Read (const char *name) |
Read contents of object with specified name from the current directory. | |
void | ResetBit (UInt_t f) |
virtual void | SaveAs (const char *filename="", Option_t *option="") const |
Save this object in the file specified by filename. | |
virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
Save a primitive as a C++ statement(s) on output stream "out". | |
void | SetBit (UInt_t f) |
void | SetBit (UInt_t f, Bool_t set) |
Set or unset the user status bits as specified in f. | |
virtual void | SetDrawOption (Option_t *option="") |
Set drawing option for object. | |
virtual void | SetUniqueID (UInt_t uid) |
Set the unique object id. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
virtual void | SysError (const char *method, const char *msgfmt,...) const |
Issue system error message. | |
R__ALWAYS_INLINE Bool_t | TestBit (UInt_t f) const |
Int_t | TestBits (UInt_t f) const |
virtual void | UseCurrentStyle () |
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. | |
virtual void | Warning (const char *method, const char *msgfmt,...) const |
Issue warning message. | |
Static Public Member Functions | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
![]() | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
static Long64_t | GetMaxFullCacheSize () |
Static method returning maxmimal size of full cache, which can be preserved by file instance. | |
static const char * | GetProxy () |
Static method returning the global proxy URL. | |
static void | SetMaxFullCacheSize (Long64_t sz) |
Static method, set maxmimal size of full cache,. | |
static void | SetProxy (const char *url) |
Static method setting global proxy URL. | |
![]() | |
static TFileOpenHandle * | AsyncOpen (const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0) |
Submit an asynchronous open request. | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static Bool_t | Cp (const char *src, const char *dst, Bool_t progressbar=kTRUE, UInt_t buffersize=1000000) |
Allows to copy file from src to dst URL. | |
static TFile *& | CurrentFile () |
Return the current ROOT file if any. | |
static const char * | DeclFileName () |
static EAsyncOpenStatus | GetAsyncOpenStatus (const char *name) |
Get status of the async open request related to 'name'. | |
static EAsyncOpenStatus | GetAsyncOpenStatus (TFileOpenHandle *handle) |
Get status of the async open request related to 'handle'. | |
static const char * | GetCacheFileDir () |
Get the directory where to locally stage/cache remote files. | |
static const TUrl * | GetEndpointUrl (const char *name) |
Get final URL for file being opened asynchronously. | |
static Long64_t | GetFileBytesRead () |
Static function returning the total number of bytes read from all files. | |
static Long64_t | GetFileBytesWritten () |
Static function returning the total number of bytes written to all files. | |
static Long64_t | GetFileCounter () |
static Int_t | GetFileReadCalls () |
Static function returning the total number of read calls from all files. | |
static Bool_t | GetOnlyStaged () |
Returns staged only flag. | |
static UInt_t | GetOpenTimeout () |
Returns open timeout (in ms). | |
static Int_t | GetReadaheadSize () |
Static function returning the readahead buffer size. | |
static Bool_t | GetReadStreamerInfo () |
If the streamerinfos are to be read at file opening. | |
static EFileType | GetType (const char *name, Option_t *option="", TString *prefix=nullptr) |
Resolve the file type as a function of the protocol field in 'name'. | |
static void | IncrementFileCounter () |
static TFile * | Open (const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0) |
Create / open a file. | |
static TFile * | Open (TFileOpenHandle *handle) |
Waits for the completion of an asynchronous open request. | |
static Bool_t | SetCacheFileDir (std::string_view cacheDir, Bool_t operateDisconnected=kTRUE, Bool_t forceCacheread=kFALSE) |
Sets the directory where to locally stage/cache remote files. | |
static void | SetFileBytesRead (Long64_t bytes=0) |
static void | SetFileBytesWritten (Long64_t bytes=0) |
static void | SetFileReadCalls (Int_t readcalls=0) |
static Bool_t | SetOnlyStaged (Bool_t onlystaged) |
Sets only staged flag. | |
static UInt_t | SetOpenTimeout (UInt_t timeout) |
Sets open timeout time (in ms). Returns previous timeout value. | |
static void | SetReadaheadSize (Int_t bufsize=256000) |
static void | SetReadStreamerInfo (Bool_t readinfo=kTRUE) |
Specify if the streamerinfos must be read at file opening. | |
static Bool_t | ShrinkCacheFileDir (Long64_t shrinkSize, Long_t cleanupInteval=0) |
Try to shrink the cache to the desired size. | |
![]() | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
![]() | |
static void | AddDirectory (Bool_t add=kTRUE) |
Sets the flag controlling the automatic add objects like histograms, TGraph2D, etc in memory. | |
static Bool_t | AddDirectoryStatus () |
Static function: see TDirectory::AddDirectory for more comments. | |
static Bool_t | Cd (const char *path) |
Change current directory to "path". | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static std::atomic< TDirectory * > & | CurrentDirectory () |
Return the current directory for the current thread. | |
static const char * | DeclFileName () |
static void | DecodeNameCycle (const char *namecycle, char *name, Short_t &cycle, const size_t namesize=0) |
Decode a namecycle "aap;2" into name "aap" and cycle "2". | |
![]() | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
![]() | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
static Longptr_t | GetDtorOnly () |
Return destructor only flag. | |
static Bool_t | GetObjectStat () |
Get status of object stat flag. | |
static void | SetDtorOnly (void *obj) |
Set destructor only flag. | |
static void | SetObjectStat (Bool_t stat) |
Turn on/off tracking of objects in the TObjectTable. | |
Protected Member Functions | |
Int_t | GetHead () override |
Overwrites TWebFile::GetHead() for retrieving the HTTP headers of this file. | |
void | ProcessHttpHeader (const TString &headerLine) override |
This method is called by the super-class TWebFile when a HTTP header for this file is retrieved. | |
void | SetAccessKey (const TString &accessKey) |
void | SetMsgReadBuffer10 (const char *redirectLocation=nullptr, Bool_t tempRedirect=kFALSE) override |
Overwrites TWebFile::SetMsgReadBuffer10() for setting the HTTP GET request compliant to the authentication mechanism used by the S3 protocol. | |
void | SetSecretKey (const TString &secretKey) |
![]() | |
virtual TString | BasicAuthentication () |
Return basic authentication scheme, to be added to the request. | |
virtual void | CheckProxy () |
Check if shell var "http_proxy" has been set and should be used. | |
virtual Int_t | GetFromCache (char *buf, Int_t len, Int_t nseg, Long64_t *seg_pos, Int_t *seg_len) |
Extract requested segments from the cached content. | |
virtual Int_t | GetFromWeb (char *buf, Int_t len, const TString &msg) |
Read request from web server. | |
virtual Int_t | GetFromWeb10 (char *buf, Int_t len, const TString &msg, Int_t nseg=0, Long64_t *seg_pos=nullptr, Int_t *seg_len=nullptr) |
Read multiple byte range request from web server. | |
virtual Int_t | GetHunk (TSocket *s, char *hunk, Int_t maxsize) |
Read a hunk of data from the socket, up until a terminator. | |
virtual Int_t | GetLine (TSocket *s, char *line, Int_t maxsize) |
Read a line from the socket. | |
virtual const char * | HttpTerminator (const char *start, const char *peeked, Int_t peeklen) |
Determine whether [START, PEEKED + PEEKLEN) contains an HTTP new line [\r]\n. | |
void | Init (Bool_t readHeadOnly) override |
Initialize a TWebFile object. | |
virtual Bool_t | ReadBuffer10 (char *buf, Int_t len) |
Read specified byte range from remote file via HTTP 1.0 daemon (without mod-root installed). | |
virtual Bool_t | ReadBuffers10 (char *buf, Long64_t *pos, Int_t *len, Int_t nbuf) |
Read specified byte ranges from remote file via HTTP 1.0 daemon (without mod-root installed). | |
![]() | |
virtual Long64_t | DirCreateEntry (TDirectory *) |
virtual Int_t | DirReadKeys (TDirectory *) |
virtual void | DirWriteHeader (TDirectory *) |
virtual void | DirWriteKeys (TDirectory *) |
Bool_t | FlushWriteCache () |
Flush the write cache if active. | |
virtual EAsyncOpenStatus | GetAsyncOpenStatus () |
virtual InfoListRet | GetStreamerInfoListImpl (bool lookupSICache) |
See documentation of GetStreamerInfoList for more details. | |
Int_t | MakeProjectParMake (const char *packname, const char *filename) |
Create makefile at 'filemake' for PAR package 'pack'. | |
Int_t | MakeProjectParProofInf (const char *packname, const char *proofinfdir) |
Create BUILD.sh and SETUP.C under 'proofinf' for PAR package 'pack'. | |
Int_t | ReadBufferViaCache (char *buf, Int_t len) |
Read buffer via cache. | |
virtual Int_t | SysClose (Int_t fd) |
Interface to system close. All arguments like in POSIX close(). | |
virtual Int_t | SysOpen (const char *pathname, Int_t flags, UInt_t mode) |
Interface to system open. All arguments like in POSIX open(). | |
virtual Int_t | SysRead (Int_t fd, void *buf, Int_t len) |
Interface to system read. All arguments like in POSIX read(). | |
virtual Long64_t | SysSeek (Int_t fd, Long64_t offset, Int_t whence) |
Interface to system lseek. | |
virtual Int_t | SysStat (Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime) |
Return file stat information. | |
virtual Int_t | SysSync (Int_t fd) |
Interface to system fsync. All arguments like in POSIX fsync(). | |
virtual Int_t | SysWrite (Int_t fd, const void *buf, Int_t len) |
Interface to system write. All arguments like in POSIX write(). | |
Int_t | WriteBufferViaCache (const char *buf, Int_t len) |
Write buffer via cache. | |
![]() | |
void | BuildDirectoryFile (TFile *motherFile, TDirectory *motherDir) |
Initialise directory to defaults. | |
void | CleanTargets () |
Clean the pointers to this object (gDirectory, TContext, etc.) | |
void | InitDirectoryFile (TClass *cl=nullptr) |
Initialize the key associated with this directory (and the related data members. | |
![]() | |
TDirectory (const TDirectory &directory)=delete | |
void | BuildDirectory (TFile *motherFile, TDirectory *motherDir) |
Initialise directory to defaults. | |
Bool_t | cd1 (const char *path) |
flag to add histograms, graphs,etc to the directory | |
void | CleanTargets () |
Clean the pointers to this object (gDirectory, TContext, etc.). | |
void | FillFullPath (TString &buf) const |
Recursive method to fill full path for directory. | |
void | operator= (const TDirectory &)=delete |
void | RegisterContext (TContext *ctxt) |
Register a TContext pointing to this TDirectory object. | |
void | RegisterGDirectory (SharedGDirectory_t &ptr) |
Register a std::atomic<TDirectory*> that will soon be pointing to this TDirectory object. | |
void | UnregisterContext (TContext *ctxt) |
UnRegister a TContext pointing to this TDirectory object. | |
![]() | |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
Interface to ErrorHandler (protected). | |
void | MakeZombie () |
Protected Attributes | |
TS3HTTPRequest | fS3Request |
Bool_t | fUseMultiRange |
![]() | |
TString | fBasicUrl |
TString | fBasicUrlOrg |
void * | fFullCache |
Long64_t | fFullCacheSize |
complete content of the file, some http server may return complete content | |
Bool_t | fHasModRoot |
Bool_t | fHTTP11 |
TString | fMsgGetHead |
TString | fMsgReadBuffer |
TString | fMsgReadBuffer10 |
Bool_t | fNoProxy |
TUrl | fProxy |
Long64_t | fSize |
TSocket * | fSocket |
TUrl | fUrlOrg |
![]() | |
TArchiveFile * | fArchive {nullptr} |
!Archive file from which we read this file | |
Long64_t | fArchiveOffset {0} |
!Offset at which file starts in archive | |
TFileOpenHandle * | fAsyncHandle {nullptr} |
!For proper automatic cleanup | |
EAsyncOpenStatus | fAsyncOpenStatus {kAOSNotAsync} |
!Status of an asynchronous open request | |
Long64_t | fBEGIN {0} |
First used byte in file. | |
Long64_t | fBytesRead {0} |
Number of bytes read from this file. | |
Long64_t | fBytesReadExtra {0} |
Number of extra bytes (overhead) read by the readahead buffer. | |
Long64_t | fBytesWrite {0} |
Number of bytes written to this file. | |
TFileCacheRead * | fCacheRead {nullptr} |
!Pointer to the read cache (if any) | |
TMap * | fCacheReadMap {nullptr} |
!Pointer to the read cache (if any) | |
TFileCacheWrite * | fCacheWrite {nullptr} |
!Pointer to the write cache (if any) | |
TArrayC * | fClassIndex {nullptr} |
!Index of TStreamerInfo classes written to this file | |
Int_t | fCompress {0} |
Compression level and algorithm. | |
Int_t | fD {-1} |
File descriptor. | |
Long64_t | fEND {0} |
Last used byte in file. | |
TList * | fFree {nullptr} |
Free segments linked list table. | |
bool | fGlobalRegistration = true |
! if true, bypass use of global lists | |
TList * | fInfoCache {nullptr} |
!Cached list of the streamer infos in this file | |
Bool_t | fInitDone {kFALSE} |
!True if the file has been initialized | |
Bool_t | fIsArchive {kFALSE} |
!True if this is a pure archive file | |
Bool_t | fIsPcmFile {kFALSE} |
!True if the file is a ROOT pcm file. | |
Bool_t | fIsRootFile {kTRUE} |
!True is this is a ROOT file, raw file otherwise | |
Bool_t | fMustFlush {kTRUE} |
!True if the file buffers must be flushed | |
Int_t | fNbytesFree {0} |
Number of bytes for free segments structure. | |
Int_t | fNbytesInfo {0} |
Number of bytes for StreamerInfo record. | |
Bool_t | fNoAnchorInName {kFALSE} |
!True if we don't want to force the anchor to be appended to the file name | |
Int_t | fNProcessIDs {0} |
Number of TProcessID written to this file. | |
Long64_t | fOffset {0} |
!Seek offset cache | |
TList * | fOpenPhases {nullptr} |
!Time info about open phases | |
TString | fOption |
File options. | |
TObjArray * | fProcessIDs {nullptr} |
!Array of pointers to TProcessIDs | |
Int_t | fReadCalls {0} |
Number of read calls ( not counting the cache calls ) | |
TString | fRealName |
Effective real file name (not original url) | |
Long64_t | fSeekFree {0} |
Location on disk of free segments structure. | |
Long64_t | fSeekInfo {0} |
Location on disk of StreamerInfo record. | |
Double_t | fSum2Buffer {0} |
Sum of squares of buffer sizes of objects written so far. | |
Double_t | fSumBuffer {0} |
Sum of buffer sizes of objects written so far. | |
Char_t | fUnits {0} |
Number of bytes for file pointers. | |
TUrl | fUrl |
!URL of file | |
Int_t | fVersion {0} |
File format version. | |
std::mutex | fWriteMutex |
!Lock for writing baskets / keys into the file. | |
Int_t | fWritten {0} |
Number of objects written so far. | |
![]() | |
Int_t | fBufferSize {0} |
Default buffer size to create new TKeys. | |
TDatime | fDatimeC |
Date and time when directory is created. | |
TDatime | fDatimeM |
Date and time of last modification. | |
TFile * | fFile {nullptr} |
Pointer to current file in memory. | |
TList * | fKeys {nullptr} |
Pointer to keys list in memory. | |
Bool_t | fModified {kFALSE} |
True if directory has been modified. | |
Int_t | fNbytesKeys {0} |
Number of bytes for the keys. | |
Int_t | fNbytesName {0} |
Number of bytes in TNamed at creation time. | |
Long64_t | fSeekDir {0} |
Location of directory on file. | |
Long64_t | fSeekKeys {0} |
Location of Keys record on file. | |
Long64_t | fSeekParent {0} |
Location of parent directory on file. | |
Bool_t | fWritable {kFALSE} |
True if directory is writable. | |
![]() | |
TContext * | fContext {nullptr} |
Buffer for GetPath() function. | |
std::atomic< size_t > | fContextPeg {0} |
thread local gDirectory pointing to this object. | |
std::vector< SharedGDirectory_t > | fGDirectories |
TList * | fList {nullptr} |
TObject * | fMother {nullptr} |
TString | fPathBuffer |
std::atomic_flag | fSpinLock |
Counter delaying the TDirectory destructor from finishing. | |
TUUID | fUUID |
![]() | |
TString | fName |
TString | fTitle |
Private Member Functions | |
TS3WebFile () | |
Bool_t | GetCredentialsFromEnv (const char *accessKeyEnv, const char *secretKeyEnv, const char *tokenEnv, TString &outAccessKey, TString &outSecretKey, TString &outToken) |
Sets the access and secret keys from the environmental variables, if they are both set. | |
Bool_t | ParseOptions (Option_t *options, TString &accessKey, TString &secretKey, TString &token) |
Extracts the S3 authentication key pair (access key and secret key) from the options. | |
Additional Inherited Members | |
![]() | |
enum | { kStartBigFile = 2000000000 } |
enum | EAsyncOpenStatus { kAOSNotAsync = -1 , kAOSFailure = 0 , kAOSInProgress = 1 , kAOSSuccess = 2 } |
Asynchronous open request status. More... | |
enum | ECacheAction { kDisconnect = 0 , kDoNotDisconnect = 1 } |
TTreeCache flushing semantics. More... | |
enum | EFileType { kDefault = 0 , kLocal = 1 , kNet = 2 , kWeb = 3 , kFile = 4 , kMerge = 5 } |
File type. More... | |
enum | EOpenTimeOut { kInstantTimeout = 0 , kEternalTimeout = 999999999 } |
Open timeout constants. More... | |
enum | ERelativeTo { kBeg = 0 , kCur = 1 , kEnd = 2 } |
enum | EStatusBits { k630forwardCompatibility = (1ULL << ( 2 )) , kRecovered = (1ULL << ( 10 )) , kHasReferences = (1ULL << ( 11 )) , kDevNull = (1ULL << ( 12 )) , kWriteError = (1ULL << ( 14 )) , kBinaryFile = (1ULL << ( 15 )) , kRedirected = (1ULL << ( 16 )) , kReproducible = (1ULL << ( 17 )) } |
TFile status bits. BIT(13) is taken up by TObject. More... | |
![]() | |
enum | EStatusBits { kCloseDirectory = (1ULL << ( 7 )) } |
![]() | |
enum | { kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 , kBitMask = 0x00ffffff } |
enum | { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) } |
enum | EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) } |
enum | EStatusBits { kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) , kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 )) } |
![]() | |
using | SharedGDirectory_t = std::shared_ptr< std::atomic< TDirectory * > > |
Pointer to a list of TContext object pointing to this TDirectory. | |
![]() | |
enum | { kOnlyPrepStep = (1ULL << ( 3 )) } |
![]() | |
static Bool_t | Cd1 (const char *path) |
Change current directory to "path". | |
static SharedGDirectory_t & | GetSharedLocalCurrentDirectory () |
Return the (address of) a shared pointer to the struct holding the actual thread local gDirectory pointer and the atomic_flag for its lock. | |
![]() | |
static Long64_t | fgMaxFullCacheSize = 500000000 |
static TUrl | fgProxy |
size of the cached content | |
![]() | |
static TList * | fgAsyncOpenRequests = nullptr |
static std::atomic< Long64_t > | fgBytesRead {0} |
Number of bytes read by all TFile objects. | |
static std::atomic< Long64_t > | fgBytesWrite {0} |
Number of bytes written by all TFile objects. | |
static TString | fgCacheFileDir |
Directory where to locally stage files. | |
static Bool_t | fgCacheFileDisconnected = kTRUE |
Indicates, we trust in the files in the cache dir without stat on the cached file. | |
static Bool_t | fgCacheFileForce = kFALSE |
Indicates, to force all READ to CACHEREAD. | |
static std::atomic< Long64_t > | fgFileCounter {0} |
Counter for all opened files. | |
static Bool_t | fgOnlyStaged = kFALSE |
Before the file is opened, it is checked, that the file is staged, if not, the open fails. | |
static UInt_t | fgOpenTimeout = TFile::kEternalTimeout |
Timeout for open operations in ms - 0 corresponds to blocking i/o. | |
static Int_t | fgReadaheadSize = 256000 |
Readahead buffer size. | |
static std::atomic< Int_t > | fgReadCalls {0} |
Number of bytes read from all TFile objects. | |
static Bool_t | fgReadInfo = kTRUE |
if true (default) ReadStreamerInfo is called when opening a file | |
static ROOT::Internal::RConcurrentHashColl | fgTsSIHashes |
!TS Set of hashes built from read streamer infos | |
![]() | |
static Bool_t | fgAddDirectory = kTRUE |
MSVC doesn't support = ATOMIC_FLAG_INIT;. | |
#include <TS3WebFile.h>
|
private |
TS3WebFile::TS3WebFile | ( | const char * | path, |
Option_t * | options = "" |
||
) |
Construct a TS3WebFile object.
The path argument is a URL of one of the following forms:
For files hosted by Google Storage, use the following forms:
The 'as3' scheme is accepted for backwards compatibility but its usage is deprecated.
The recommended way to create an instance of this class is through TFile::Open, for instance:
The specified scheme (i.e. s3, s3http, s3https, ...) determines the underlying transport protocol to use for downloading the file contents, namely HTTP or HTTPS. The 's3', 's3https', 'gs' and 'gshttps' schemes imply using HTTPS as the transport protocol. The 's3http', 'as3' and 'gshttp' schemes imply using HTTP as the transport protocol.
The 'options' argument can contain 'NOPROXY' if you want to bypass the HTTP proxy when retrieving this file's contents. As for any TWebFile-derived object, the URL of the web proxy can be specified by setting an environmental variable 'http_proxy'. If this variable is set, we ask that proxy to route our requests HTTP(S) requests to the file server.
In addition, you can also use the 'options' argument to provide the access key and secret key to be used for authentication purposes for this file by using a string of the form "AUTH=myAccessKey:mySecretkey". This may be useful to open several files hosted by different providers in the same program/macro, where the environemntal variables solution is not convenient (see below).
To use AWS temporary security credentials you need to specify the session token. This can be added to the options argument with a string of the form TOKEN=mySessionToken. The temporary access and secret keys must also be available, either via the AUTH option or by environmental variable.
If you need to specify more than one option separate them by ' ' (blank), for instance: "NOPROXY AUTH=F38XYZABCDeFgH4D0E1F:V+frt4re7J1euSNFnmaf8wwmI4AAAE7kzxZ/TTM+"
Examples:
If there is no authentication information in the 'options' argument (i.e. not AUTH="....") the values of the environmental variables S3_ACCESS_KEY and S3_SECRET_KEY (if set) are expected to contain the access key id and the secret access key, respectively. You have been provided with these credentials by your S3 service provider.
If neither the AUTH information is provided in the 'options' argument nor the environmental variables are set, we try to open the file without providing any authentication information to the server. This is useful when the file is set an access control that allows for any unidentified user to read the file.
Definition at line 152 of file TS3WebFile.cxx.
|
inlinevirtual |
Definition at line 93 of file TS3WebFile.h.
|
static |
|
inlinestaticconstexpr |
Definition at line 105 of file TS3WebFile.h.
|
inlinestatic |
Definition at line 105 of file TS3WebFile.h.
|
inline |
Definition at line 96 of file TS3WebFile.h.
|
inline |
Definition at line 98 of file TS3WebFile.h.
|
private |
Sets the access and secret keys from the environmental variables, if they are both set.
Sets the security session token if it is given.
Definition at line 366 of file TS3WebFile.cxx.
|
overrideprotectedvirtual |
Overwrites TWebFile::GetHead() for retrieving the HTTP headers of this file.
Uses TS3HTTPRequest to generate an HTTP HEAD request which includes the authorization header expected by the S3 server.
Reimplemented from TWebFile.
Definition at line 287 of file TS3WebFile.cxx.
|
inline |
Definition at line 99 of file TS3WebFile.h.
|
inline |
Definition at line 97 of file TS3WebFile.h.
|
inline |
Definition at line 100 of file TS3WebFile.h.
|
inlineoverridevirtual |
Reimplemented from TFile.
Definition at line 105 of file TS3WebFile.h.
|
private |
Extracts the S3 authentication key pair (access key and secret key) from the options.
The authentication credentials can be specified in the options provided to the constructor of this class as a string containing: "AUTH=<access key>:<secret key>" and can include other options, for instance "NOPROXY" for not using the HTTP proxy for accessing this file's contents. For instance: "NOPROXY AUTH=F38XYZABCDeFgHiJkLm:V+frt4re7J1euSNFnmaf8wwmI401234E7kzxZ/TTM+" A security token may be given by the TOKEN option, in order to allow the use of a temporary key pair.
Definition at line 255 of file TS3WebFile.cxx.
|
overrideprotectedvirtual |
This method is called by the super-class TWebFile when a HTTP header for this file is retrieved.
We scan the 'Server' header to detect the type of S3 server this file is hosted on and to determine if it is known to support multi-range HTTP GET requests. Some S3 servers (for instance Amazon's) do not support that feature and when they receive a multi-range request they sent back the whole file contents. For this class, if the server do not support multirange requests we issue multiple single-range requests instead.
Reimplemented from TWebFile.
Definition at line 346 of file TS3WebFile.cxx.
|
overridevirtual |
Read the nbuf blocks described in arrays pos and len.
The value pos[i] is the seek position of block i of length len[i]. Note that for nbuf=1, this call is equivalent to TFile::ReafBuffer. This function is overloaded by TNetFile, TWebFile, etc. Returns kTRUE in case of failure.
Reimplemented from TFile.
Definition at line 311 of file TS3WebFile.cxx.
|
inlineprotected |
Definition at line 83 of file TS3WebFile.h.
|
overrideprotectedvirtual |
Overwrites TWebFile::SetMsgReadBuffer10() for setting the HTTP GET request compliant to the authentication mechanism used by the S3 protocol.
The GET request must contain an "Authorization" header with the signature of the request, generated using the user's secret access key.
Reimplemented from TWebFile.
Definition at line 301 of file TS3WebFile.cxx.
|
inlineprotected |
Definition at line 84 of file TS3WebFile.h.
|
overridevirtual |
|
inline |
Definition at line 105 of file TS3WebFile.h.
|
protected |
Definition at line 87 of file TS3WebFile.h.
|
protected |
Definition at line 88 of file TS3WebFile.h.