def work3(book_id: int, filename: str = None): wk = Wenku8ToEpub() if filename is None: filename_ = wk.id2name(book_id) if filename == '': return filename = "%s.epub" % filename_ data = wk.get_book(book_id, bin_mode=True, fetch_image=True) # response1 = client.put_object( # Bucket=bucket, # Body=data, # # Key=filename_md5, # Key="%s" % (filename, ), # StorageClass='STANDARD', # EnableMD5=False # ) # response2 = client.put_object( # Bucket=bucket, # Body=(str_jump % filename).encode('gbk'), # # Key=filename_md5, # Key="%s.html" % (book_id, ), # StorageClass='STANDARD', # EnableMD5=False # ) # logger.info("%s OK. %s %s" % (filename, str(response1), str(response2))) # return 'https://light-novel-1254016670.cos.ap-guangzhou.myqcloud.com/%s' % filename logger.info("%s OK。(No Cache.)" % (filename, )) return data
def v2_work(book_id: int, filename: str = None, mlogger=None, image=False): wk = Wenku8ToEpub() if filename is None: filename_ = wk.id2name(book_id) if filename == '': return filename = "%s.epub" % filename_ # 设置最大图像规模为3MB if os.environ.get('WENKU8_LOCAL', 'False') == 'True': image_size = None else: image_size = 3 * 1024 * 1024 data = wk.get_book(book_id, bin_mode=True, fetch_image=image, mlogger=mlogger, image_size=image_size) mlogger.info('小说获取完毕,准备上传到腾讯云...') try: if os.environ.get('WENKU8_LOCAL', 'False') == 'True': response1 = client.put_object( Bucket=bucket, Body=data, # Key=filename_md5, Key="%s" % (filename, ), StorageClass='STANDARD', EnableMD5=False) else: raise CosClientError("腾讯云上传取消。") # 小心内存过大 except Exception as e: mlogger.warn("%s 腾讯云上传错误,准备直接返回临时下载链接..." % str(e)) # 保存到本地 with open('static/%s' % filename, 'wb') as f: f.write(data) filename = urllib.parse.quote(filename) url = '/static/%s' % filename lock.acquire() th_results[str(book_id)] = url lock.release() # 再开个线程再次尝试上传 # threading.Thread(target=my_upload_file, args=("%s" % (filename,), bio)).start() return url mlogger.info("%s OK. %s" % (filename, str(response1))) if os.environ.get('WENKU8_LOCAL', 'False') == 'True': with open('static/%s' % filename, 'wb') as f: f.write(data) filename = urllib.parse.quote(filename) url = '/static/%s' % filename else: filename = urllib.parse.quote(filename) url = 'https://light-novel-1254016670.cos.ap-guangzhou.myqcloud.com/%s' % filename lock.acquire() th_results[str(book_id)] = url lock.release() return url
def work2(book_id: int, filename: str = None): wk = Wenku8ToEpub() if filename is None: filename_ = wk.id2name(book_id) if filename == '': return filename = "%s.epub" % filename_ response = client.put_object( Bucket=bucket, Body=(str_jump % filename).encode('gbk'), # Body=(str_jump % ("https://light-novel-1254016670.cos.ap-guangzhou.myqcloud.com/" + urllib.quote(filename))).encode('utf-8'), # Key=filename_md5, Key="%s.html" % (book_id, ), StorageClass='STANDARD', EnableMD5=False) logger.info("%s OK." % filename)