File transfer errors

Hi, I’m pretty new here and found out some errors that I cannot solve yet:
First: On download a file I’m getting this message: Failed to download. The total size of the files exceeded the limit.
Second: My transfer rate is so slow even in LAN, I’m getting around 16Kbps which makes no sense when I’m having a 600Mbps Internet speed
Third: Many files do fail at tranfer, or I’m getting an error to retry to upload (Doesnt matter how many times I press retry, It fails) or it gets stuck at 100% and does nothing.
If someone knows how to solve these things I would be very grateful

You might have several issues, not one.

To start, can you say something about your server setup? Is Seafile running the standard binaries or via Docker? Is this Seafile Pro or CE? Does the server employ a reverse proxy like Nginx? You get the idea.

Do uploads and downloads ever succeed? If so, have you checked what the size limit(s) might be?

Do uploads/downloads work using the web interface? Do the Seafile clients (Sync and Drive apps) work at all?

Have you checked the Manual concerning Upload/Download settings?

[fileserver]
# Set maximum upload file size to 200M.
# If not configured, there is no file size limit for uploading.
max_upload_size=200

# Set maximum download directory size to 200M.
# Default is 100M.
max_download_dir_size=200

I’m running via docker, and also using CE and with Nginx.
Do I need just add these lines to the seafile.conf file? If I put 0 am I getting unlimited size? Because as It is by now there is only written in :

  1. [filserver]: the port I use
  2. [database]: database info
  3. [notifications]: notifications info

I do not know if 0 works for max_upload_size and max_download_size but it is easy to test.

The note suggests that if you comment-out the settings no limit will be applied. Alternatively you could set a large value like 10000 which would certainly provide adequate room for testing. Make sure to restart Seafile after making changes.

Nginx can limit file transfers too. Have you checked that configuration as well? If I remember correctly

Maximum allowed size of the client request body (client_max_body_size)
client_max_body_size 0;

is what you are after. There are some notes on Nginx in the Manual.

Often it’s a good idea to post your anonymized configurations so the readers can see what is going on. There are many expert readers for each part of the Seafile server and it’s good to meet them halfway as much as possible.

My seafile nginx conf file

server {
listen 80;
server_name "my_address";

    client_max_body_size 0;

    location / {
        proxy_pass http://127.0.0.1:8000/;
        proxy_read_timeout 310s;
        proxy_set_header Host $http_host;
        proxy_set_header Forwarded "for=$remote_addr;proto=$scheme";
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Connection "";
        proxy_http_version 1.1;

        client_max_body_size 0;
        access_log      /var/log/nginx/seahub.access.log seafileformat;
        error_log       /var/log/nginx/seahub.error.log;
}

    location /seafhttp {
        rewrite ^/seafhttp(.*)$ $1 break;
        proxy_pass http://127.0.0.1:8082;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size 0;
        proxy_connect_timeout  36000s;
        proxy_read_timeout  36000s;
        proxy_request_buffering off;
        access_log      /var/log/nginx/seafhttp.access.log seafileformat;
        error_log       /var/log/nginx/seafhttp.error.log;
    }

    location /notification/ping {
        proxy_pass http://127.0.0.1:8083/ping;
        access_log      /var/log/nginx/notification.access.log seafileformat;
        error_log       /var/log/nginx/notification.error.log;
    }

    location /notification {
        proxy_pass http://127.0.0.1:8083/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        access_log      /var/log/nginx/notification.access.log seafileformat;
        error_log       /var/log/nginx/notification.error.log;
    }
 location /seafdav {
        proxy_pass         http://127.0.0.1:8080;
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_read_timeout  1200s;
        client_max_body_size 0;

        access_log      /var/log/nginx/seafdav.access.log seafileformat;
        error_log       /var/log/nginx/seafdav.error.log;
    }

    location /media {
        root /opt/seafile/seafile-server-latest/seahub;
    }

}

And my seafile conf:

  GNU nano 7.2                                                         seafile.conf                                                                  [fileserver]
port = 8082
max_upload_size=100000
max_download_dir_size=100000

[database]
type = mysql
host = db
port = 3306
user = seafile
password = "a random password"
db_name = seafile_db
connection_charset = utf8

[notification]
enabled = false
host = 127.0.0.1
port = 8083
log_level = info

Looks like only a piece of the Nginx configuration made it over. Can you add the rest? -Thank you

Done, sorry my bad

I haven’t seen this before. Is this part of the default setup or did you add it?

In general, there are slight variations from the basic HTTP port 80 configuration recommended in the Manual. Both WebDAV and the Notification Server are elective. Have you tried using the “plain vanilla” configuration for HTTP shown in the Manual.

Just for reference, this might be useful too:

The default value for client_max_body_size is 1M. Uploading larger files will result in an error message HTTP error code 413 (“Request Entity Too Large”). It is recommended to syncronize the value of client_max_body_size with the parameter max_upload_size in section [fileserver] of seafile.conf. Optionally, the value can also be set to 0 to disable this feature. Client uploads are only partly effected by this limit. With a limit of 100 MiB they can safely upload files of any size.

I did not touch anything there.
Reading the documentation I found that it talks about /nginx/sites-aviable while this configuration is located on /my_seafile_file/data/app/nginx/conf/seafile.nginx.conf,

/sites-aviable:

  GNU nano 7.2                                                                   seafile.conf                                                                            server {
    server_name "MY_ADDRESS";
    client_max_body_size 1000;
    location / {
        proxy_pass http://localhost:8082;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $server_name;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/"MY_ADDRESS"/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/"MY_ADDRESS"/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
    listen 80;
    server_name "MY_ADDRESS";

    return 301 https://$host$request_uri; # Redirigir todo el tráfico HTTP a HTTPS
}```

Changing the value to 0 solved that issue. However, uploads are still failing. Files cannot be uploaded concurrently because they get stuck at 100%, 0%, or fail altogether.

Example:
imagen

Nginx has both sites-available and sites-enabled. For example:

The sites-available folder is for storing all of your vhost configurations, whether or not they’re currently enabled.

The sites-enabled folder contains symlinks to files in the sites-available folder. This allows you to selectively disable vhosts by removing the symlink.

As for Uploads, are you using the web interface (Seahub) or one of the client applications?

Here is a related post on Uploads. Does it help at all?

I’ve read the thread, so using a web browser doesn’t seem like a good idea. Also, what is “Seahub” that you mentioned? Did I miss something by not installing it?

“Seahub is the web frontend for Seafile.” See HERE for more info.

Why is the web interface not a good idea, especially since you are still in testing mode?

When I mean “It’s not a good idea”:

I see the point if you are talking about 16 GB files but the example above is 69.4 MB. I don’t see a reason why that does not work.

Summarizing your present state, are you saying that downloads are working but uploads are all failing, or is there a size limit?

Further, are you using the sync client, the drive client, or both?

Correctly, downloads now work perfectly but all uploads using website fail as I told before

You have Seafile Docker and Nginx running and have made all the max file size adjustments to the configuration. Right? What else do you have running at your end that might affect things?

Could you try another upload and post your logs?

-Thank you

Are you running the GoLang server?

[fileserver]
use_go_fileserver = true

If you happen to have an older version of the server you might have to declare it as above. I’m not clear on whether you still have to on the current or later versions of Seafile but I don’t think it can hurt.

Placed use_go_fileserver=true, now I’m trying to upload a file (still getting stuck at 0%)
When logs pops up I will post you back

If I’m not wrong I’m using 11.0.12 version