Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Sender will fail to upload file artifact if it changes between creation and sending

未关闭
#870 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
python
领域
backend

调研方向

首先跟踪从 run.save_file() 经过缓存的 artifact JSON 到 sender() 的 artifact 流程,重点关注 checksum 和文件内容何时被读取。复现 issue 中的离线模式步骤,并验证在 save_file() 之后发生更改的文件能够成功上传且不会出现 BadDigest 错误。

由索引模型根据 Issue 内容生成。

描述

bug offline

Description of Bug

When creating an Artifact via run.save_file(), the checksum is calculated and stored in the artifact JSON in the cache, along with the path to the file. If that file is then changed between the time when it was asked to be saved by the user, and when it is actually sent by the sender(), the checksum will no longer match the file, and so the upload will fail. You'll get back an error like:

E       RuntimeError: uploading artifact 'test_file_artifact_6c49f901' to object storage failed for url '[https://simvue-ci.s3.amazonaws.com/'](https://simvue-ci.s3.amazonaws.com/%27) with status 400: <?xml version="1.0" encoding="UTF-8"?>
E       <Error><Code>BadDigest</Code><Message>The SHA256 you specified did not match the calculated checksum.</Message></Error>

Steps To Reproduce

Steps to reproduce the behavior:

  1. Create a run in offline mode
  2. Create a file
  3. Do run.save_file()
  4. Change the contents of the file
  5. Run sender()

Expected behavior

The file should be uploaded (I guess as it was when the user called save_file()

Actual Behaviour

Error due to mismatched checksum

Setup

  • OS: Ubuntu 22.04
  • Python version 3.10
主要语言
Python
星标
4
派生
1
平均合并
7 天 6 小时
30 天内合并 PR
6

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

simvue-io/python-api 的其他 Issue

查看 simvue-io/python-api 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。