@@ -162,22 +162,26 @@ def __post(self, url, data=None):
162
162
return http ._post_with_auth_and_headers (url , data , self .auth , headers )
163
163
164
164
165
- def create_timestamp_anti_leech_url (host , file_name , query_string , encrypt_key , deadline ):
165
+ def create_timestamp_anti_leech_url (host , file_name , query_string_dict , encrypt_key , deadline ):
166
166
"""
167
167
创建时间戳防盗链
168
168
169
169
Args:
170
- host: 带访问协议的域名
171
- file_name: 原始文件名,不需要urlencode
172
- query_string : 查询参数,不需要urlencode
173
- encrypt_key: 时间戳防盗链密钥
174
- deadline: 链接有效期时间戳(以秒为单位)
170
+ host: 带访问协议的域名
171
+ file_name: 原始文件名,不需要urlencode
172
+ query_string_dict : 查询参数,不需要urlencode
173
+ encrypt_key: 时间戳防盗链密钥
174
+ deadline: 链接有效期时间戳(以秒为单位)
175
175
176
176
Returns:
177
177
带时间戳防盗链鉴权访问链接
178
178
"""
179
- if len (query_string ) > 0 :
180
- url_to_sign = '{0}/{1}?{2}' .format (host , urlencode (file_name ), urlencode (query_string ))
179
+ if query_string_dict is not None and len (query_string_dict ) > 0 :
180
+ query_string_items = []
181
+ for k , v in query_string_dict .items ():
182
+ query_string_items .append ('{0}={1}' .format (urlencode (str (k )), urlencode (str (v ))))
183
+ query_string = '&' .join (query_string_items )
184
+ url_to_sign = '{0}/{1}?{2}' .format (host , urlencode (file_name ), query_string )
181
185
else :
182
186
url_to_sign = '{0}/{1}' .format (host , urlencode (file_name ))
183
187
@@ -186,7 +190,7 @@ def create_timestamp_anti_leech_url(host, file_name, query_string, encrypt_key,
186
190
str_to_sign = '{0}{1}{2}' .format (encrypt_key , path , expire_hex ).encode ()
187
191
sign_str = hashlib .md5 (str_to_sign ).hexdigest ()
188
192
189
- if len (query_string ) > 0 :
193
+ if query_string_dict is not None and len (query_string_dict ) > 0 :
190
194
signed_url = '{0}&sign={1}&t={2}' .format (url_to_sign , sign_str , expire_hex )
191
195
else :
192
196
signed_url = '{0}?sign={1}&t={2}' .format (url_to_sign , sign_str , expire_hex )
0 commit comments