Exemple #1
0
    def make_url_authed(self,
                        key,
                        expire=datetime.timedelta(minutes=5),
                        ip=None,
                        bucketAsDomain=False):
        """Produce an authenticated URL for scs object *key*.

		*expire* is a delta or a datetime on which the authenticated URL
		expires. It defaults to five minutes, and accepts a timedelta, an
		integer delta in seconds, or a datetime.

		To generate an unauthenticated URL for a key, see `B.make_url`.
		"""
        expire = expire2datetime(expire)
        expire = time.mktime(expire.timetuple()[:9])
        expire = str(int(expire))
        args = None
        if ip:
            args = {'ip': ip}
        scsreq = self.request(key=key, headers={"Date": expire}, args=args)
        sign = scsreq.sign(self)
        args_list = {
            "KID": 'sina,%s' % self.access_key,
            "Expires": expire,
            "ssig": sign
        }
        if ip:
            args_list['ip'] = ip
        scsreq.args = args_list.items()
        return scsreq.url(self.base_url,
                          arg_sep="&",
                          bucketAsDomain=bucketAsDomain)
Exemple #2
0
    def putFile(self,
                key,
                filePath,
                progressCallback=None,
                acl=None,
                metadata={},
                mimetype=None,
                transformer=None,
                headers={},
                args=None,
                subresource=None):
        '''
			filePath            本地文件路径
			progressCallback    上传文件进度回调方法    _callback(self._total, len(data), *self._args)
		'''
        with open(filePath, 'rb') as fp:
            headers["s-sina-sha1"] = aws_md5(fp)

        from email.utils import formatdate
        from calendar import timegm
        expireDate = expire2datetime(datetime.timedelta(minutes=60 * 24))
        expireDate = formatdate(timegm(expireDate.timetuple()), usegmt=True)

        headers['Date'] = expireDate

        #         with open(filePath, 'rb') as fp:
        #             fileWithCallback = FileWithCallback(fp, progressCallback)
        #             return self.put(key, fileWithCallback, acl, metadata, mimetype, transformer, headers, args, subresource)
        #         fileWithCallback = FileWithCallback(filePath, 'rb', progressCallback)
        with FileWithCallback(filePath, 'rb',
                              progressCallback) as fileWithCallback:
            return self.put(key, fileWithCallback, acl, metadata, mimetype,
                            transformer, headers, args, subresource)
Exemple #3
0
    def make_url_authed(self, key, expire=datetime.timedelta(minutes=5), 
                        ip=None, bucketAsDomain=False):
        """Produce an authenticated URL for scs object *key*.

        *expire* is a delta or a datetime on which the authenticated URL
        expires. It defaults to five minutes, and accepts a timedelta, an
        integer delta in seconds, or a datetime.

        To generate an unauthenticated URL for a key, see `B.make_url`.
        """
        expire = expire2datetime(expire)
        expire = time.mktime(expire.timetuple()[:9])
        expire = str(int(expire))
        args = None
        if ip:
            args = {'ip':ip}
        scsreq = self.request(key=key, headers={"Date": expire}, args=args)
        sign = scsreq.sign(self)
        args_list = {"KID": 'sina,%s'%self.access_key,
                      "Expires": expire,
                      "ssig": sign}
        if ip:
            args_list['ip'] = ip
        scsreq.args = args_list.items()
        return scsreq.url(self.base_url, arg_sep="&", bucketAsDomain=bucketAsDomain)
Exemple #4
0
    def putFileByHeaders(self, key, fileWithCallback):
        '''
			filePath            本地文件路径
			progressCallback    上传文件进度回调方法    _callback(self._total, len(data), *self._args)
		'''
        headers = {}
        #         f = file(fileWithCallback.name, 'rb')
        #         headers["s-sina-sha1"] = aws_md5(f)
        #         f.close()

        from email.utils import formatdate
        from calendar import timegm
        expireDate = expire2datetime(datetime.timedelta(minutes=60 * 24))
        expireDate = formatdate(timegm(expireDate.timetuple()), usegmt=True)
        headers['Date'] = 'Tue, 11 Nov 2015 15:25:57 GMT'  #expireDate

        return self.put(key=key, data=fileWithCallback, headers=headers)
Exemple #5
0
    def putFileByHeaders(self, key, fileWithCallback):
        '''
            filePath            本地文件路径
            progressCallback    上传文件进度回调方法    _callback(self._total, len(data), *self._args)
        '''
        headers={}
#         f = file(fileWithCallback.name, 'rb')
#         headers["s-sina-sha1"] = aws_md5(f)
#         f.close()
        
        from email.utils import formatdate
        from calendar import timegm
        expireDate = expire2datetime(datetime.timedelta(minutes=60*24))
        expireDate =  formatdate(timegm(expireDate.timetuple()), usegmt=True)
        headers['Date'] = 'Tue, 11 Nov 2015 15:25:57 GMT'#expireDate
        
        return self.put(key=key, data=fileWithCallback, headers=headers)
Exemple #6
0
 def putFile(self, key, filePath, progressCallback=None, acl=None, metadata={}, mimetype=None,
         transformer=None, headers={}, args=None, subresource=None):
     '''
         filePath            本地文件路径
         progressCallback    上传文件进度回调方法    _callback(self._total, len(data), *self._args)
     '''
     f = file(filePath, 'rb')
     headers["s-sina-sha1"] = aws_md5(f)
     f.close()
     
     from email.utils import formatdate
     from calendar import timegm
     expireDate = expire2datetime(datetime.timedelta(minutes=60*24))
     expireDate =  formatdate(timegm(expireDate.timetuple()), usegmt=True)
 
     headers['Date'] = expireDate
     
     fileWithCallback = FileWithCallback(filePath, 'rb', progressCallback)
     return self.put(key, fileWithCallback, acl, metadata, mimetype, transformer, headers, args, subresource)