Skip to content

希望可以提前生成取件码 #474

Open

Description

@anchogin

背景

在上传大文件的时候,上传一般都要很久,而取件码要上传完成之后才能看到,也就是我必须等他上传完才能看到取件码然后告诉朋友

需求

能不能在上传的时候就生成取件码,这样我就能把取件码先告诉朋友,然后让文件自己上传,我可以去干别的事,朋友可以过段时间用取件码去看有没有文件,上传完了他自己下载就行

注意事项

  1. 取件码生成了别人就不能再生成,否则取件码可能就会重复了
  2. 取件码的过期时间和上传时候选择的过期时间一致

拓展点

然后我看有其他人提了进度条的issue,我想可以和这个结合一下

  1. 当朋友输入取件码的时候,如果没上传完的话可以展示目前的上传进度,比如还差多少上传完,88%,888M/1G
  2. 把取件码的上传状态也同步过去,因为有可能会上传失败,上传失败输入取件码可以看到状态是上传失败,朋友就可以提醒我失败了,让我重新上传。即使没失败朋友也可以看到状态是上传完成,他就知道我上传完了,这个状态和进度不一样,进度100%不一定代表上传完成,按照实现不同,进度100可能是还差0.0001kb没上传,但是由于精度问题显示100%,也可能是文件上传完了,但是还没做hash校验文件完整性,这都不算上传完成,只有真正完成了上传的全部事项才算是上传完成,上传完成之后使用取件码下载的一定就是上传的全部资源并且没有损坏

实现这种就需要

1、生成取件码的时候就要在服务器保存取件码,避免重复生成,取件码在服务器过期时间和上传时候选择的过期时间一致,过期释放取件码的号码资源
2、上传进度不光就是上传的人本地可见,需要把这个取件码的上传进度保存到服务器,让取件码的人也能看到,并且如果上传失败,把上传状态也同步到服务器,取件码的人可以看到上传失败了通知上传者

Activity

  1. wjw479 commented on Apr 21, 2026

    @wjw479

    背景

    在上传大文件的时候,上传一般都要很久,而取件码要上传完成之后才能看到,也就是我必须等他上传完才能看到取件码然后告诉朋友

    需求

    能不能在上传的时候就生成取件码,这样我就能把取件码先告诉朋友,然后让文件自己上传,我可以去干别的事,朋友可以过段时间用取件码去看有没有文件,上传完了他自己下载就行

    注意事项

    1. 取件码生成了别人就不能再生成,否则取件码可能就会重复了
    2. 取件码的过期时间和上传时候选择的过期时间一致

    拓展点

    然后我看有其他人提了进度条的issue,我想可以和这个结合一下

    1. 当朋友输入取件码的时候,如果没上传完的话可以展示目前的上传进度,比如还差多少上传完,88%,888M/1G
    2. 把取件码的上传状态也同步过去,因为有可能会上传失败,上传失败输入取件码可以看到状态是上传失败,朋友就可以提醒我失败了,让我重新上传。即使没失败朋友也可以看到状态是上传完成,他就知道我上传完了,这个状态和进度不一样,进度100%不一定代表上传完成,按照实现不同,进度100可能是还差0.0001kb没上传,但是由于精度问题显示100%,也可能是文件上传完了,但是还没做hash校验文件完整性,这都不算上传完成,只有真正完成了上传的全部事项才算是上传完成,上传完成之后使用取件码下载的一定就是上传的全部资源并且没有损坏

    实现这种就需要

    1、生成取件码的时候就要在服务器保存取件码,避免重复生成,取件码在服务器过期时间和上传时候选择的过期时间一致,过期释放取件码的号码资源 2、上传进度不光就是上传的人本地可见,需要把这个取件码的上传进度保存到服务器,让取件码的人也能看到,并且如果上传失败,把上传状态也同步到服务器,取件码的人可以看到上传失败了通知上传者

    你的有没有这个问题,就是接收文件的弹窗点击关闭,再点取件按钮,显示取件码错误。

  2. anchogin commented on Apr 22, 2026

    @anchogin
    Author

    背景

    在上传大文件的时候,上传一般都要很久,而取件码要上传完成之后才能看到,也就是我必须等他上传完才能看到取件码然后告诉朋友

    需求

    能不能在上传的时候就生成取件码,这样我就能把取件码先告诉朋友,然后让文件自己上传,我可以去干别的事,朋友可以过段时间用取件码去看有没有文件,上传完了他自己下载就行

    注意事项

    1. 取件码生成了别人就不能再生成,否则取件码可能就会重复了
    2. 取件码的过期时间和上传时候选择的过期时间一致

    拓展点

    然后我看有其他人提了进度条的issue,我想可以和这个结合一下

    1. 当朋友输入取件码的时候,如果没上传完的话可以展示目前的上传进度,比如还差多少上传完,88%,888M/1G
    2. 把取件码的上传状态也同步过去,因为有可能会上传失败,上传失败输入取件码可以看到状态是上传失败,朋友就可以提醒我失败了,让我重新上传。即使没失败朋友也可以看到状态是上传完成,他就知道我上传完了,这个状态和进度不一样,进度100%不一定代表上传完成,按照实现不同,进度100可能是还差0.0001kb没上传,但是由于精度问题显示100%,也可能是文件上传完了,但是还没做hash校验文件完整性,这都不算上传完成,只有真正完成了上传的全部事项才算是上传完成,上传完成之后使用取件码下载的一定就是上传的全部资源并且没有损坏

    实现这种就需要

    1、生成取件码的时候就要在服务器保存取件码,避免重复生成,取件码在服务器过期时间和上传时候选择的过期时间一致,过期释放取件码的号码资源 2、上传进度不光就是上传的人本地可见,需要把这个取件码的上传进度保存到服务器,让取件码的人也能看到,并且如果上传失败,把上传状态也同步到服务器,取件码的人可以看到上传失败了通知上传者

    你的有没有这个问题,就是接收文件的弹窗点击关闭,再点取件按钮,显示取件码错误。

    没出现这种情况,输入5位取件码自动弹窗,关闭弹窗,再输入5位取件码,会再次弹窗,可以取件

  3. vastsa commented on Jul 11, 2026

    @vastsa
    Owner

    当前尚未实现。现有流程在分片合并或预签名确认完成后才创建取件码,也没有可供接收方查询的 pending/failed 上传记录。建议拆为“上传会话预分配取件码”和“接收方查询上传状态”两阶段,并设计 pending/completed/failed/expired 状态机、唯一占位、失败/超时释放,以及未完成记录不可下载。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions