Better describe what DownloadProgress event actually is/does

オープン
#830 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
42/100
issue の種類
ドキュメント
明瞭さ
おおむね明確
活発さ
停滞
領域
documentation

調査の方向性

DownloadProgress と FolderCompletion のドキュメントから始め、2 つのノードと小さなファイルを使って GET /rest/events 経由で報告を再現します。観測されたイベントストリームを文書化された動作と比較し、その後、DownloadProgress が小さなファイルに対してどのように動作するか、またイベントクライアントがどのイベントを使用すべきかを説明するように説明を更新します。動作とフォールバックが明確になれば完了です。

索引モデルが issue の本文から書いたものです。

説明

bug needs-triage

Hey there! Syncthing is really an amazing piece of software and I am loving the experience of working with it. I am a Go programmer and would be happy to contribute if necessary.

Something I have noticed that is causing issues for me is that the event stream does not seem to behave as the documentation would indicate when it comes to tiny files. The docs for the DownloadProgress event state:

Files/folders appearing in the event data imply that the download has been started for that file/folder, where disappearing implies that the downloads have been finished or failed for that file/folder. There is always a last event emitted with no data, which implies all downloads have finished/failed.

This is definitely the case for reasonably sized files, however, I've noticed that if I add a file that is just a few bytes (think just typing "hello" into a text file and saving it), no DownloadProgress event is fired at all. The file synchronizes just fine, but I have yet to uncover any way for my application to become aware of these tiny files other than perhaps polling the filesystem, which is what I was hoping to let Syncthing do for me.

This is on Syncthing 1.25.0 but also observed in 1.23 and 1.24. I'm running the official Docker image on Mac.

Is there some other event that I should subscribe to? I thought a bit about watching the FolderCompletion event, but contrary to what's stated in the docs, it only seems to fire for remote devices, never local.

Steps to reproduce: just set up two nodes and write a small file, then check GET /rest/events.

主要言語
Python
スター
327
フォーク
653
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

syncthing/docs のほかの issue

syncthing/docs の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。