Logo Search packages:      
Sourcecode: s3ql version File versions  Download package

def s3ql::backends::boto::s3::key::Key::set_contents_from_file (   self,
  fp,
  headers = None,
  replace = True,
  cb = None,
  num_cb = 10,
  policy = None,
  md5 = None,
  reduced_redundancy = False 
)
Store an object in S3 using the name of the Key object as the
key in S3 and the contents of the file pointed to by 'fp' as the
contents.

:type fp: file
:param fp: the file whose contents to upload

:type headers: dict
:param headers: additional HTTP headers that will be sent with the PUT request.

:type replace: bool
:param replace: If this parameter is False, the method
        will first check to see if an object exists in the
        bucket with the same key.  If it does, it won't
        overwrite it.  The default value is True which will
        overwrite the object.
    
:type cb: function
:param cb: a callback function that will be called to report
    progress on the upload.  The callback should accept two integer
    parameters, the first representing the number of bytes that have
    been successfully transmitted to S3 and the second representing
    the total number of bytes that need to be transmitted.
    
:type cb: int
:param num_cb: (optional) If a callback is specified with the cb parameter
     this parameter determines the granularity of the callback by defining
     the maximum number of times the callback will be called during the file transfer.

:type policy: :class:`boto.s3.acl.CannedACLStrings`
:param policy: A canned ACL policy that will be applied to the new key in S3.
     
:type md5: A tuple containing the hexdigest version of the MD5 checksum of the
   file as the first element and the Base64-encoded version of the plain
   checksum as the second element.  This is the same format returned by
   the compute_md5 method.
:param md5: If you need to compute the MD5 for any reason prior to upload,
    it's silly to have to do it twice so this param, if present, will be
    used as the MD5 values of the file.  Otherwise, the checksum will be computed.
    
:type reduced_redundancy: bool
:param reduced_redundancy: If True, this will set the storage
                   class of the new Key to be
                   REDUCED_REDUNDANCY. The Reduced Redundancy
                   Storage (RRS) feature of S3, provides lower
                   redundancy at lower storage cost.

Definition at line 482 of file key.py.

                                                        :
        """
        Store an object in S3 using the name of the Key object as the
        key in S3 and the contents of the file pointed to by 'fp' as the
        contents.
        
        :type fp: file
        :param fp: the file whose contents to upload
        
        :type headers: dict
        :param headers: additional HTTP headers that will be sent with the PUT request.

        :type replace: bool
        :param replace: If this parameter is False, the method
                        will first check to see if an object exists in the
                        bucket with the same key.  If it does, it won't
                        overwrite it.  The default value is True which will
                        overwrite the object.
                    
        :type cb: function
        :param cb: a callback function that will be called to report
                    progress on the upload.  The callback should accept two integer
                    parameters, the first representing the number of bytes that have
                    been successfully transmitted to S3 and the second representing
                    the total number of bytes that need to be transmitted.
                    
        :type cb: int
        :param num_cb: (optional) If a callback is specified with the cb parameter
             this parameter determines the granularity of the callback by defining
             the maximum number of times the callback will be called during the file transfer.

        :type policy: :class:`boto.s3.acl.CannedACLStrings`
        :param policy: A canned ACL policy that will be applied to the new key in S3.
             
        :type md5: A tuple containing the hexdigest version of the MD5 checksum of the
                   file as the first element and the Base64-encoded version of the plain
                   checksum as the second element.  This is the same format returned by
                   the compute_md5 method.
        :param md5: If you need to compute the MD5 for any reason prior to upload,
                    it's silly to have to do it twice so this param, if present, will be
                    used as the MD5 values of the file.  Otherwise, the checksum will be computed.
                    
        :type reduced_redundancy: bool
        :param reduced_redundancy: If True, this will set the storage
                                   class of the new Key to be
                                   REDUCED_REDUNDANCY. The Reduced Redundancy
                                   Storage (RRS) feature of S3, provides lower
                                   redundancy at lower storage cost.

        """
        if headers is None:
            headers = {}
        if policy:
            headers['x-amz-acl'] = policy
        if reduced_redundancy:
            self.storage_class = 'REDUCED_REDUNDANCY'
            headers['x-amz-storage-class'] = self.storage_class
        if hasattr(fp, 'name'):
            self.path = fp.name
        if self.bucket != None:
            if not md5:
                md5 = self.compute_md5(fp)
            self.md5 = md5[0]
            self.base64md5 = md5[1]
            if self.name == None:
                self.name = self.md5
            if not replace:
                k = self.bucket.lookup(self.name)
                if k:
                    return
            self.send_file(fp, headers, cb, num_cb)


Generated by  Doxygen 1.6.0   Back to index