Python进行,七牛多文件压缩(mkzip) 返回结果为 404,Document not found

发布于 2022-09-12 04:01:15 字数 1785 浏览 47 评论 0

用Python进行七牛多文件处理(mkzip),一直报404的错,索引文件没有问题,可以访问,索引文件内的图片地址也是可以访问的,不知道是哪个文件找不到
参考的七牛相关文档:
https://developer.qiniu.com/k...
https://developer.qiniu.com/d...

from qiniu import Auth, PersistentFop, urlsafe_base64_encode

access_key = '....'
secret_key = '....'
q = Auth(access_key, secret_key)

bucket = 'hera'
key = 'mkzip-index_2.txt'
fops = 'mkzip/4/'

saveas_key = urlsafe_base64_encode(bucket + ':' + "xlz_mkzip4.zip")
fops = fops+'|saveas/'+saveas_key

pfop = PersistentFop(q, bucket)
ops = []
ops.append(fops)
ret, info = pfop.execute(key, ops, 1)
print("ret:   ", ret)
print("info:   ", info)
assert ret['persistentId'] is not None

打印结果

ret:    None
info:    _ResponseInfo__response:<Response [404]>, exception:None, status_code:404, text_body:{"error":"Document not found"}, req_id:wpUAAABWbvpfniQW, x_log:X-Log, error:Document not found

索引文件:
https://heras.igengmei.com/mk...

索引文件内容生成过程:

from qiniu import urlsafe_base64_encode
images = ["https://heras.igengmei.com/2020/07/23/0fcd8a243b", "https://heras.igengmei.com/2020/07/23/e8f134ef12", "https://heras.igengmei.com/2020/07/24/d9d4f234a5"]
for i in images:
    print('/url/' + urlsafe_base64_encode(i))
生成结果:
/url/aHR0cHM6Ly9oZXJhcy5pZ2VuZ21laS5jb20vMjAyMC8wNy8yMy8wZmNkOGEyNDNi
/url/aHR0cHM6Ly9oZXJhcy5pZ2VuZ21laS5jb20vMjAyMC8wNy8yMy9lOGYxMzRlZjEy
/url/aHR0cHM6Ly9oZXJhcy5pZ2VuZ21laS5jb20vMjAyMC8wNy8yNC9kOWQ0ZjIzNGE1

确定空间名没有问题,
尝试加管道也没用

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鯉魚旗 2022-09-19 04:01:15

任务的id提供下呢,或者试下这个demo

# -*- coding: utf-8 -*-
# flake8: noqa
#DOCUMENT https://developer.qiniu.com/dora/manual/1667/mkzip#2
from qiniu import Auth,http, urlsafe_base64_encode
  
access_key = 'YOUR_ACCESS_KEY'
secret_key = 'YOUR_SECRECT_KEY'
q = Auth(access_key, secret_key)
 
url = 'http://api.qiniu.com/pfop/'
 
fops = "mkzip/4"
saveas_key = urlsafe_base64_encode('bucket_name:save.zip') # 转码后的空间:文件名
fops = fops + '|saveas/' + saveas_key
 
body = { "fops": fops, 'bucket': 'bucket_name', 'key': 'index.txt'} # 索引文件所在空间及索引文件名
 
ret, info = http._post_with_auth(url=url, data=body, auth=q)
print(info)
assert ret['persistentId']
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文