Circumvent Discord's File Upload Size Restriction With 7zip


Discord by default only allows a user to share a file with a max size of 10MB[1]. Previously the limit was 25MB[2] until they reduced it to save on expenses[3], falsely claiming that users weren't using the additional upload size[4]. This is the smallest offered by the major chat services.


[1] [Discord] File Attachments FAQ

[2] [Twitter] Discord announces raising the file size limit from 8MB to 25MB.

[3] [Dextero] Discord lowers free upload limit to 10MB: “Storage management is expensive”

[4] [Discord] What are Nitro & Nitro Basic? (Why do I need Nitro to upload more than 10MB of files?)


We know the real reason for it is that Discord is failing to maintain the number of files received as it is. They frequently lose file uploads. (The amount of poop in my chat history is staggering.) Do not treat Discord like a reliable storage service.


I always try to be polite to free services and optimize my files as much as possible before uploading to limit the impact to them. But Discord has broken the social contract and used this as a manipulative justification to entirely prevent the option of sharing larger files when the need arises.


There is no good free file hosting/sharing out there. They either spy on you, are plastered in dangerous ads, don't offer sufficient capacity anyways, have technical issues, close down after a month, or other problems. I've set up my own file server for sharing, but that is an unreasonable expectation for most people to do. So it is time to return to this old trick.


The Workaround


Files are compressed into 10MB multi-part archives which can be sent through Discord, then reassembled by the receiver.


Get 7zip


7-zip[5] is an easy to use FOSS file archiver with better compression options than the typical zip or rar formats. Make sure you and the receiver have it installed.


[5] 7-zip


Compressing with the GUI on Windows


There is a field 'Split to volumes bytes'. Set this to `10M`.


The rest of the compression options can be set as usual. I suggest using the 7zip archive format with LZMA2 compression.


Once ready, click 'OK'. The archives should now be created.


Compressing with the CLI on Linux


Use the `-v` flag to set the volume output size. It will automatically make as many archives as needed of that size in order to store all the data.


You may also specify a letter to set the unit type of the size.


╔════════╤══════════╗
║ Letter │ Unit     ║
╟────────┼──────────╢
║   b    │ byte     ║
║   k    │ kilobyte ║
║   m    │ megabyte ║
║   g    │ gigabyte ║
╚════════╧══════════╝

So to create archives of 10MB for Discord's upload limit, we can use the command:


7z a -v10m archive_name.7z file1.txt file2.mp4

If you're dedicated to reducing the file size, these additional options can help improve compression:


7z a -v10m -t7z -m0=lzma2 -mx=9 -myx=9 -mqs=on -mmt=2 archive_name.7z file1.txt file2.mp4

Sharing the files


The sender then uploads all the files through Discord. They should be numbered starting at '.001' up to the final archive number needed. Let the receiver know what the final part number is.


The receiver downloads all the files. They can start downloading as soon as they see the parts. Order does not matter, but make sure you get all of them. Store all of the parts in the same directory.


Extracting


Once all the parts are downloaded, extracting the file is as easy as opening any other archive.


If you are using the GUI, simply open the first archive part and extract as usual.


If you are using the command line, extract as usual by targeting the first archive part.


7z x archive_name.7z.001

If there are errors, make sure you have downloaded all of the parts, have them all in the same directory, and that all the parts have completed downloading without errors.


Conclusions


This workaround is mildly inconvenient, but it's more convenient than the other options. Naturally, you'll miss out on features like file previews as chat embeds.


Don't overuse this. The Discord admins will catch on because nothing through Discord is secured. If you need more than ten archives, consider finding another service. Try something like PairDrop[6], Rymdport[7], or setting up a temporary private torrent.


[6] PairDrop

[7] Rymdport


Also consider deleting the files when you're done to keep things lighter on Discord's servers. If the users using this technique are polite about it, Discord's admins will be less likely to strike down on it.


Suggestion to Discord


My suggestion to Discord would be to allow temporary uploads of files larger than 10MB. Allow up to 25MB uploads again, but delete them after 3 days by default. Allow the user to pick a length of time for it to expire between 5 minutes and a week. Nitro users can pick to have it stay indefinitely, as it is now.


The time delay should be sufficient for users who are actively communicating to get the files transferred, while preventing the business costs associated with long term storage. This would allow users to exchange files more easily without significantly raising Discord's operation costs.



/knowledge/