-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add file concat option #1208
Comments
What is the use-case you had in mind for this? It seems odd to me that you would want to combine independent files into a single one unless it is for uploading large files in chunks which you can achieve through the multipart upload API. Keep in mind that combining files wouldn't mean reuploading them. It would just merge metadata. |
Yes, it has to do with uploading huge files. I have to play around with the restrictions that libfuse gives me with yours (renterd). Merging metadata to get a bigger file is what I am looking for. Some context here.In #1165, the answer was Range support for PUT wouldn't happen. Then, I can't upload a file longer than 128K as libfuse (3, 2 is even smaller 4k) only pushes 128kb blocks of data. Also, please note that libfuse write operations are atomic (meaning, I can't know the total size of the write op, I only have data, offset and size). Then I moved to multiparts. Multiparts have a 10000-part restriction and I was told on Discord that increasing that limit won't happen. This puts siafs to a file limit of 1.2 GB (128kb times 10,000) which is not a small file but it is very common for a file (such as a video or a high-quality image) to be longer than 1.2 GB. Then I moved to a buffered approach in which I saved locally the first 1 GB before pushing it into a multipart. This approach would raise the file limit to 1 TB. But sadly, renterd has the following issues when uploading a big multipart (as per my tests, a 76 MB multipart presents the following error)
Please note the So, I was looking at different ways to upload huge files and, since copying smaller files is not an issue, then my approach would be uploading the small chunks into a hidden directory (.something) and when libfuse reported the write op ended, I'd concatenate them on the server size and copy with the proper endpoint. I am open to suggestions. |
Are you running this on testnet or mainnet? Uploading To me it seems like this might be more of an issue with your configuration / testnet hosts rather than the size of the parts. So I wouldn't discard the buffered approach just yet. There is a good chance the smaller parts worked because they weren't actually uploaded and instead buffered for upload packing. |
I am on testnet. I use default settings from renterd. |
Description
The same way there is an api/bus/objects/copy endpoint, it would be wonderful if we have api/bus/objects/concatenate or add the copy endpoint the support to concatenate files.
The current copy endpoint needs this:
maybe add support to support things like:
Version
v1.0.6
What operating system are you running (e.g. Ubuntu 22.04, macOS, Windows 11)?
Linux
Anything else?
No response
The text was updated successfully, but these errors were encountered: