go-shiori / shiori

Simple bookmark manager built with Go
MIT License
9.04k stars 546 forks source link

PUT request to /api/v1/bookmarks/cache takes too long #918

Open DesarrolloAntonio opened 2 months ago

DesarrolloAntonio commented 2 months ago

Data

Describe the bug / actual behavior

I have an Android app that interacts with Shiori's API. When I attempt to update a bookmark archive, the request takes an excessively long time, often several minutes when is a large bookmark.

Endpoint: PUT http://192.168.1.68:18080/api/v1/bookmarks/cache

{
   "create_archive": true,
   "create_ebook": true,
   "ids": [37],
   "keep_metadata": true,
   "skip_exist": false
}

Initially, the timeout in android app was set to 30 seconds. I increased it to 50 seconds, but there are still bookmarks that I cannot update because the request times out.

It seems that the timeout issue is related to the length of the bookmark. Here is an example of large bookmark that causes this issue. large bookmark

Expected behavior

The server should return the bookmark information promptly while creating the archive in the background.

To Reproduce

Steps to reproduce the behavior:

  1. Add large bookmark
  2. Update archive
fmartingr commented 1 month ago

Yeah, currently the data download task is a sync process. We could just launch this in background but right now we don't have means of telling the user what's the status of a background job. I'm currently working in something for that but is far from ready and it have other implications due to the nature of the bookmarks being available to all users at the moment.

fmartingr commented 1 month ago

Reopening for future reference.