Hackfut Security File Manager
Current Path:
/usr/lib/python2.6/site-packages/boto/s3
usr
/
lib
/
python2.6
/
site-packages
/
boto
/
s3
/
📁
..
📄
__init__.py
(2.29 KB)
📄
__init__.pyc
(1.76 KB)
📄
__init__.pyo
(1.76 KB)
📄
acl.py
(5.59 KB)
📄
acl.pyc
(5.95 KB)
📄
acl.pyo
(5.95 KB)
📄
bucket.py
(77.51 KB)
📄
bucket.pyc
(69.08 KB)
📄
bucket.pyo
(69.03 KB)
📄
bucketlistresultset.py
(6.64 KB)
📄
bucketlistresultset.pyc
(5.61 KB)
📄
bucketlistresultset.pyo
(5.61 KB)
📄
bucketlogging.py
(3.11 KB)
📄
bucketlogging.pyc
(2.84 KB)
📄
bucketlogging.pyo
(2.84 KB)
📄
connection.py
(25.58 KB)
📄
connection.pyc
(23.19 KB)
📄
connection.pyo
(23.05 KB)
📄
cors.py
(8.73 KB)
📄
cors.pyc
(7.83 KB)
📄
cors.pyo
(7.83 KB)
📄
deletemarker.py
(2.04 KB)
📄
deletemarker.pyc
(1.47 KB)
📄
deletemarker.pyo
(1.47 KB)
📄
key.py
(80.39 KB)
📄
key.pyc
(64.48 KB)
📄
key.pyo
(64.48 KB)
📄
keyfile.py
(4.32 KB)
📄
keyfile.pyc
(4.89 KB)
📄
keyfile.pyo
(4.89 KB)
📄
lifecycle.py
(8.06 KB)
📄
lifecycle.pyc
(9.02 KB)
📄
lifecycle.pyo
(9.02 KB)
📄
multidelete.py
(4.65 KB)
📄
multidelete.pyc
(4.86 KB)
📄
multidelete.pyo
(4.86 KB)
📄
multipart.py
(11.77 KB)
📄
multipart.pyc
(11.68 KB)
📄
multipart.pyo
(11.68 KB)
📄
prefix.py
(1.62 KB)
📄
prefix.pyc
(1.21 KB)
📄
prefix.pyo
(1.21 KB)
📄
resumable_download_handler.py
(15.23 KB)
📄
resumable_download_handler.pyc
(10.09 KB)
📄
resumable_download_handler.pyo
(10.09 KB)
📄
tagging.py
(1.69 KB)
📄
tagging.pyc
(3.6 KB)
📄
tagging.pyo
(3.6 KB)
📄
user.py
(1.92 KB)
📄
user.pyc
(1.48 KB)
📄
user.pyo
(1.48 KB)
📄
website.py
(10.36 KB)
📄
website.pyc
(12.02 KB)
📄
website.pyo
(12.02 KB)
Editing: keyfile.py
# Copyright 2013 Google Inc. # Copyright 2011, Nexenta Systems Inc. # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the # "Software"), to deal in the Software without restriction, including # without limitation the rights to use, copy, modify, merge, publish, dis- # tribute, sublicense, and/or sell copies of the Software, and to permit # persons to whom the Software is furnished to do so, subject to the fol- # lowing conditions: # # The above copyright notice and this permission notice shall be included # in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. """ Wrapper class to expose a Key being read via a partial implementaiton of the Python file interface. The only functions supported are those needed for seeking in a Key open for reading. """ import os from boto.exception import StorageResponseError class KeyFile(): def __init__(self, key): self.key = key self.key.open_read() self.location = 0 self.closed = False self.softspace = -1 # Not implemented. self.mode = 'r' self.encoding = 'Undefined in KeyFile' self.errors = 'Undefined in KeyFile' self.newlines = 'Undefined in KeyFile' self.name = key.name def tell(self): if self.location is None: raise ValueError("I/O operation on closed file") return self.location def seek(self, pos, whence=os.SEEK_SET): self.key.close(fast=True) if whence == os.SEEK_END: # We need special handling for this case because sending an HTTP range GET # with EOF for the range start would cause an invalid range error. Instead # we position to one before EOF (plus pos) and then read one byte to # position at EOF. if self.key.size == 0: # Don't try to seek with an empty key. return pos = self.key.size + pos - 1 if pos < 0: raise IOError("Invalid argument") self.key.open_read(headers={"Range": "bytes=%d-" % pos}) self.key.read(1) self.location = pos + 1 return if whence == os.SEEK_SET: if pos < 0: raise IOError("Invalid argument") elif whence == os.SEEK_CUR: pos += self.location else: raise IOError('Invalid whence param (%d) passed to seek' % whence) try: self.key.open_read(headers={"Range": "bytes=%d-" % pos}) except StorageResponseError as e: # 416 Invalid Range means that the given starting byte was past the end # of file. We catch this because the Python file interface allows silently # seeking past the end of the file. if e.status != 416: raise self.location = pos def read(self, size): self.location += size return self.key.read(size) def close(self): self.key.close() self.location = None self.closed = True def isatty(self): return False # Non-file interface, useful for code that wants to dig into underlying Key # state. def getkey(self): return self.key # Unimplemented interfaces below here. def write(self, buf): raise NotImplementedError('write not implemented in KeyFile') def fileno(self): raise NotImplementedError('fileno not implemented in KeyFile') def flush(self): raise NotImplementedError('flush not implemented in KeyFile') def next(self): raise NotImplementedError('next not implemented in KeyFile') def readinto(self): raise NotImplementedError('readinto not implemented in KeyFile') def readline(self): raise NotImplementedError('readline not implemented in KeyFile') def readlines(self): raise NotImplementedError('readlines not implemented in KeyFile') def truncate(self): raise NotImplementedError('truncate not implemented in KeyFile') def writelines(self): raise NotImplementedError('writelines not implemented in KeyFile') def xreadlines(self): raise NotImplementedError('xreadlines not implemented in KeyFile')
Upload File
Create Folder