|
|
|
@ -1,130 +0,0 @@
|
|
|
|
|
import requests
|
|
|
|
|
import uuid
|
|
|
|
|
import base64
|
|
|
|
|
import os
|
|
|
|
|
|
|
|
|
|
# 创建 Session 对象
|
|
|
|
|
session = requests.Session()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 1. 登录
|
|
|
|
|
def login():
|
|
|
|
|
login_url = 'https://ww1.colorlightcloud.com/wp-login.php'
|
|
|
|
|
log = 'Ylt5786'
|
|
|
|
|
pwd = 'DJCtjy064'
|
|
|
|
|
login_data = {'log': log, 'pwd': pwd, 'lwa': '1', 'login-with-ajax': 'login'}
|
|
|
|
|
|
|
|
|
|
print("正在登录...")
|
|
|
|
|
login_response = session.post(login_url, data=login_data)
|
|
|
|
|
if login_response.json().get('result') == True:
|
|
|
|
|
print("登录成功,Cookie 已保存")
|
|
|
|
|
else:
|
|
|
|
|
print("登录失败")
|
|
|
|
|
exit()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 2. 创建上传任务
|
|
|
|
|
def create_upload_task():
|
|
|
|
|
upload_url = 'https://ww1.colorlightcloud.com/wp-content/uploads/Tus'
|
|
|
|
|
filename = r'D:\1.mp4'
|
|
|
|
|
filetype = 'video/mp4' # 根据实际文件类型设置
|
|
|
|
|
|
|
|
|
|
# 获取文件大小
|
|
|
|
|
file_size = os.path.getsize(filename)
|
|
|
|
|
|
|
|
|
|
# 对文件名和文件类型进行 Base64 编码
|
|
|
|
|
filename_base64 = base64.b64encode(filename.encode()).decode()
|
|
|
|
|
filetype_base64 = base64.b64encode(filetype.encode()).decode()
|
|
|
|
|
|
|
|
|
|
# 动态生成 X-Request-ID
|
|
|
|
|
x_request_id = str(uuid.uuid4())
|
|
|
|
|
|
|
|
|
|
# 构造请求头
|
|
|
|
|
headers = {
|
|
|
|
|
'Accept': '*/*',
|
|
|
|
|
'Accept-Encoding': 'gzip, deflate, br, zstd',
|
|
|
|
|
'Accept-Language': 'zh-CN,zh;q=0.9',
|
|
|
|
|
'Connection': 'keep-alive',
|
|
|
|
|
'Content-Length': '0',
|
|
|
|
|
'Host': 'ww1.colorlightcloud.com',
|
|
|
|
|
'Origin': 'https://ww1.colorlightcloud.com',
|
|
|
|
|
'Referer': 'https://ww1.colorlightcloud.com/media',
|
|
|
|
|
'Sec-Fetch-Dest': 'empty',
|
|
|
|
|
'Sec-Fetch-Mode': 'cors',
|
|
|
|
|
'Sec-Fetch-Site': 'same-origin',
|
|
|
|
|
'Tus-Resumable': '1.0.0',
|
|
|
|
|
'Upload-Length': str(file_size), # 动态设置文件大小
|
|
|
|
|
'Upload-Metadata': f'filename {filename_base64},filetype {filetype_base64}',
|
|
|
|
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36',
|
|
|
|
|
'X-Request-ID': x_request_id,
|
|
|
|
|
'ngsw-bypass': 'true',
|
|
|
|
|
'sec-ch-ua': '"Not(A:Brand";v="99", "Google Chrome";v="133", "Chromium";v="133"',
|
|
|
|
|
'sec-ch-ua-mobile': '?0',
|
|
|
|
|
'sec-ch-ua-platform': '"Windows"',
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
print("正在创建上传任务...")
|
|
|
|
|
response = session.post(upload_url, headers=headers)
|
|
|
|
|
if response.status_code == 201: # 201 Created 表示任务创建成功
|
|
|
|
|
print("上传任务创建成功")
|
|
|
|
|
# 返回上传路径
|
|
|
|
|
return response.headers.get('Location')
|
|
|
|
|
else:
|
|
|
|
|
print("上传任务创建失败,状态码:", response.status_code)
|
|
|
|
|
print("响应内容:", response.text)
|
|
|
|
|
exit()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 3. 上传文件
|
|
|
|
|
def upload_file(upload_path):
|
|
|
|
|
filename = r'D:\KeCheng\课程\【进阶篇】\【完成】生成6K高清小姐姐照片\imgs\1_512×768.png'
|
|
|
|
|
|
|
|
|
|
# 读取文件内容
|
|
|
|
|
print("正在读取文件...")
|
|
|
|
|
with open(filename, 'rb') as file:
|
|
|
|
|
file_data = file.read()
|
|
|
|
|
|
|
|
|
|
# 动态生成 X-Request-ID
|
|
|
|
|
x_request_id = str(uuid.uuid4())
|
|
|
|
|
|
|
|
|
|
# 构造请求头
|
|
|
|
|
headers = {
|
|
|
|
|
'Accept': '*/*',
|
|
|
|
|
'Accept-Encoding': 'gzip, deflate, br, zstd',
|
|
|
|
|
'Accept-Language': 'zh-CN,zh;q=0.9',
|
|
|
|
|
'Connection': 'keep-alive',
|
|
|
|
|
'Content-Length': str(len(file_data)), # 动态设置文件大小
|
|
|
|
|
'Content-Type': 'application/offset+octet-stream',
|
|
|
|
|
'Host': 'ww1.colorlightcloud.com',
|
|
|
|
|
'Origin': 'https://ww1.colorlightcloud.com',
|
|
|
|
|
'Referer': 'https://ww1.colorlightcloud.com/media',
|
|
|
|
|
'Sec-Fetch-Dest': 'empty',
|
|
|
|
|
'Sec-Fetch-Mode': 'cors',
|
|
|
|
|
'Sec-Fetch-Site': 'same-origin',
|
|
|
|
|
'Tus-Resumable': '1.0.0',
|
|
|
|
|
'Upload-Offset': '0',
|
|
|
|
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36',
|
|
|
|
|
'X-Request-ID': x_request_id,
|
|
|
|
|
'ngsw-bypass': 'true',
|
|
|
|
|
'sec-ch-ua': '"Not(A:Brand";v="99", "Google Chrome";v="133", "Chromium";v="133"',
|
|
|
|
|
'sec-ch-ua-mobile': '?0',
|
|
|
|
|
'sec-ch-ua-platform': '"Windows"',
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
print("正在上传文件...")
|
|
|
|
|
upload_response = session.patch(upload_path, headers=headers, data=file_data)
|
|
|
|
|
print("上传响应状态码:", upload_response.status_code)
|
|
|
|
|
print("上传响应内容:", upload_response.text)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 主流程
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
# 1. 登录
|
|
|
|
|
login()
|
|
|
|
|
|
|
|
|
|
# 2. 创建上传任务
|
|
|
|
|
upload_path = create_upload_task()
|
|
|
|
|
print("上传路径:", upload_path)
|
|
|
|
|
|
|
|
|
|
# 3. 上传文件
|
|
|
|
|
upload_file('https://ww1.colorlightcloud.com' + upload_path)
|