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)
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)
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)
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)
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)
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)