def make_url_authed(self, key, expire=datetime.timedelta(minutes=5), ip=None, cheese=None, fn=None): """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)) scsreq = self.request(key=key, headers={"Date": expire}) sign = scsreq.sign(self) args_list = {"KID": 'sina,%s'%self.access_key, "Expires": expire, "ssig": sign} if ip: args_list['ip'] = ip if cheese: args_list['cheese'] = cheese if fn: args_list['fn'] = fn scsreq.args = args_list.items() return scsreq.url(self.base_url, arg_sep="&")
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'] = expireDate return self.put(key=key, data=fileWithCallback, headers=headers)
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)