Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

网络不稳定导致无法上传 #76

Open
362227 opened this issue Nov 9, 2024 · 10 comments
Open

网络不稳定导致无法上传 #76

362227 opened this issue Nov 9, 2024 · 10 comments
Assignees

Comments

@362227
Copy link

362227 commented Nov 9, 2024

oss: service returned error: StatusCode=409, ErrorCode=PartAlreadyExist, ErrorMessage="For sequential multipart upload, you can't overwrite uploaded parts.",

网络有时候不稳定,然后就这样无限了,能不能遇到报错409,就删掉这个分片重新上传继续呢
上传115速度一般有10M/s+,网络不能算太烂,但因为是海外服务器,有时候不稳定

@orzogc orzogc self-assigned this Nov 9, 2024
@362227
Copy link
Author

362227 commented Nov 10, 2024

https://help.aliyun.com/zh/oss/support/http-status-code-409

FileAlreadyExists
The object you specified already exists and can not be overwritten
问题原因:当请求的Header中携带x-oss-forbid-overwrite=true时,表示禁止覆盖同名文件。如果文件已存在,则返回该错误。
解决方案:
您可以通过以下两种方式在简单上传、拷贝文件、分片上传等场景中覆盖同名文件:

不携带x-oss-forbid-overwrite参数,或将此参数设置为false。
对Bucket开启版本控制,此时被覆盖的文件会以历史版本的形式保存下来,您可以随时恢复任意历史版本文件。

@362227
Copy link
Author

362227 commented Nov 11, 2024

我加了setHeader(HTTPHeaderOssForbidOverWrite, "false")后,至少一天没有出现409错误了

@yoshyv
Copy link

yoshyv commented Nov 19, 2024

@orzogc 同样海外上传的时候,时不时会出错
-m 出错后也有概率发生没有保存上传记录(比如电脑直接死机了等情况)

能否无论 -u 还是 -m 模式上传,计算sha1后立即保存文件对应sha1值,直到上传成功后才删除(选择性保留)
这样出错后重新上传也不用一遍遍无意义的反复计算sha1?

@orzogc
Copy link
Owner

orzogc commented Nov 19, 2024

@orzogc 同样海外上传的时候,时不时会出错 -m 出错后也有概率发生没有保存上传记录(比如电脑直接死机了等情况)

能否无论 -u 还是 -m 模式上传,计算sha1后立即保存文件对应sha1值,直到上传成功后才删除(选择性保留) 这样出错后重新上传也不用一遍遍无意义的反复计算sha1?

我有空就整整

@orzogc
Copy link
Owner

orzogc commented Nov 19, 2024

我加了setHeader(HTTPHeaderOssForbidOverWrite, "false")后,至少一天没有出现409错误了

@362227
现在还有问题吗?是在InitiateMultipartUpload加还是UploadPart那里加?

@CEX68
Copy link

CEX68 commented Nov 24, 2024

我加了setHeader(HTTPHeaderOssForbidOverWrite, "false")后,至少一天没有出现409错误了

@362227 现在还有问题吗?是在InitiateMultipartUpload加还是UploadPart那里加?

我都加了,还是会出现错误。目前靠删除 json 进度文件重新上传解决。
1
2

@CEX68
Copy link

CEX68 commented Nov 24, 2024

附上日志

年/月/日 11:22:34 上传 上传的视频.mp4 的第1090个分片时出现错误:Put "http://fhnfile.oss-cn-shenzhen.aliyuncs.com/<uuid>?partNumber=1090&uploadId=<uploadId>": write tcp <内网IP1>:54423-><内网IP2>:80: write: broken pipe
年/月/日 11:22:34 尝试重新上传第1090个分片
2.72 GiB / 29 GiB [---------->______________________________________________________________] 14.71% 810.90 KiB p/s ETA 5h40m3s年/月/日 11:24:49 上传 上传的视频.mp4 的第1472个分片时出现错误:Put "http://fhnfile.oss-cn-shenzhen.aliyuncs.com/<uuid>?partNumber=1472&uploadId=<uploadId>": write tcp <内网IP1>:54495-><内网IP2>:80: write: broken pipe
年/月/日 11:24:49 尝试重新上传第1472个分片
3.17 GiB / 29 GiB [------------>___________________________________________________________] 17.12% 963.21 KiB p/s ETA 4h38m12s年/月/日 11:26:23 上传 上传的视频.mp4 的第1713个分片时出现错误:Put "http://fhnfile.oss-cn-shenzhen.aliyuncs.com/<uuid>?partNumber=1713&uploadId=<uploadId>": read tcp <内网IP1>:54558-><内网IP2>:80: read: connection reset by peer
年/月/日 11:26:23 尝试重新上传第1713个分片
3.37 GiB / 29 GiB [------------->__________________________________________________________] 18.21% 9.38 KiB p/s ETA 469h59m38s年/月/日 11:27:58 上传 上传的视频.mp4 的第1822个分片时出现错误:Put "http://fhnfile.oss-cn-shenzhen.aliyuncs.com/<uuid>?partNumber=1822&uploadId=<uploadId>": net/http: timeout awaiting response headers
年/月/日 11:27:58 尝试重新上传第1822个分片
3.37 GiB / 29 GiB [------------->__________________________________________________________] 18.21% 8.77 KiB p/s ETA 502h24m27s年/月/日 11:27:58 上传 上传的视频.mp4 的第1822个分片时出现错误:oss: service returned error: StatusCode=409, ErrorCode=PartAlreadyExist, ErrorMessage="For sequential multipart upload, you can't overwrite uploaded parts.", RequestId=<RequestId>, Ec=0042-00000108
年/月/日 11:27:58 尝试重新上传第1822个分片
3.37 GiB / 29 GiB [------------>__________________________________________________________] 18.22% 211.10 KiB p/s ETA 20h23m32s年/月/日 11:27:59 上传 上传的视频.mp4 的第1822个分片时出现错误:oss: service returned error: StatusCode=409, ErrorCode=PartAlreadyExist, ErrorMessage="For sequential multipart upload, you can't overwrite uploaded parts.", RequestId=<RequestId>, Ec=0042-00000108
3.37 GiB / 29 GiB [-------------->_________________________________________________________________] 18.23% 4.14 MiB p/s 13m54s
年/月/日 11:27:59 正在保存 上传的视频.mp4 的上传进度,存档文件是 <存档文件>.json

@orzogc
Copy link
Owner

orzogc commented Nov 24, 2024

@CEX68 UploadPart那里加一下试试

@CEX68
Copy link

CEX68 commented Nov 24, 2024

@CEX68 UploadPart那里加一下试试

之前也加了,还是会报错。

part, err = bucket.UploadPart(imur, f, chunk.Size, chunk.Number,
					oss.SetHeader("x-oss-security-token", ot.SecurityToken),
					oss.SetHeader("x-oss-forbid-overwrite", "false"),

@orzogc
Copy link
Owner

orzogc commented Nov 24, 2024

@CEX68 UploadPart那里加一下试试

之前也加了,还是会报错。

part, err = bucket.UploadPart(imur, f, chunk.Size, chunk.Number,
					oss.SetHeader("x-oss-security-token", ot.SecurityToken),
					oss.SetHeader("x-oss-forbid-overwrite", "false"),

oss.HTTPHeaderOssForbidOverWrite试试,不清楚大小写有没有影响

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants