Skip to content

Implement backend for FileJump (#8114) #8693

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

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

masrlinu
Copy link

What is the purpose of this change?

This PR implements a backend for the storage provider FileJump.com.

Was the change discussed in an issue or in the forum before?

Yes, this backend was requested in issue #8114.

Checklist

  • I have read the contribution guidelines.
  • I have added tests for all changes in this PR if appropriate.
  • I have added documentation for the changes if appropriate.
  • All commit messages are in house style.
  • I'm done, this Pull Request is ready for review :-)

- Implemented complete filejump backend with API integration
- Added comprehensive test suite for filejump backend
- Updated documentation and configuration
- All integration tests passing for filejump backend
@ncw
Copy link
Member

ncw commented Jul 20, 2025

How are the integration tests going? Does go test -v in the backend directory work? How about test_all?

See here for more info: https://github.com/rclone/rclone/blob/master/CONTRIBUTING.md#writing-a-new-backend

@masrlinu
Copy link
Author

Yes, everything works. I just tested it again. But I had to start it with a bigger timeout. I tested it with
test_all -backends filejump -timeout 10h

It finished in 1h48min.

Here is the output of the test:
2025-07-21-140856.zip

@ncw
Copy link
Member

ncw commented Jul 25, 2025

Yes, everything works. I just tested it again. But I had to start it with a bigger timeout. I tested it with test_all -backends filejump -timeout 10h

It finished in 1h48min.

That is a bit slow, but not the slowest backend!

Here is the output of the test: 2025-07-21-140856.zip

That looks really good. The bisync tests took the longest.

We can add a time modifier in the config.yaml for the integration tests

extratime: 2.0

This multiplies the normal timeout (which is 1h) by that factor. Looking at the timings none of the tests took longer than 2h so that should be fine.

This backend was made using the public REST API at https://eu.filejump.com/api-docs - is that right?

I'll give the code a review now.

Copy link
Member

@ncw ncw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is looking really great. The integration tests all passing is fantastic.

I've put some notes inline - nothing serious.

I think you've got some lint things to fix too.

Thank you

@masrlinu
Copy link
Author

This backend was made using the public REST API at https://eu.filejump.com/api-docs - is that right?

Yes, that is right. But Google Chrome even shows the typescript of the original Code of the website and it is easy to see in the network tab in the browser after every request, what exactly happened.

So there are two different ways how to upload a file. One is by requesting an upload url and upload it there (directly to the underlying wasabi backend). The website does it this way. And the other way to upload a file is via the public REST API. It looks like a wrapper, which uploads the file later to the wasabi backend.

I did it like the website. With big files, it maybe should be faster, because the files don't use the wrapper. But maybe for short files, I should use the REST API.

As I am at the moment on holidays and can just program on my phone, I will look into your change review later.

But actually this artificial intelligence agent:

https://www.atlassian.com/blog/announcements/rovo-dev-command-line-interface

helped me A LOT with programming. I told it to make my code pass the tests and the same day, my code passed ALL the tests!

Sometimes, I had to guide it, but it is unbelievable, you should test it 😄 It is completely free until the end of this month.

And if you like, while I am on holidays, you can update my code, however you like. But don't worry, just if you have time ☺️

@ncw
Copy link
Member

ncw commented Jul 25, 2025

@masrlinu thanks for the update. I'll mark this for v1.71 which is due 23rd August. So enjoy your holiday and don't feel you need to look at this until you get back :-)

@ncw ncw added this to the v1.71 milestone Jul 25, 2025
@masrlinu
Copy link
Author

masrlinu commented Aug 6, 2025

Hi @ncw! I've addressed all the suggestions, fixed the linter issues, updated the docs, and fixed the filejump-specific workspace handling. The latest changes also include support for move, dir-move, cleanup, about, and publiclink. Let me know what you think!
PS: all tests with test_all passed again

@masrlinu masrlinu requested a review from ncw August 6, 2025 12:11
@masrlinu
Copy link
Author

masrlinu commented Aug 8, 2025

I've implemented some fixes. The FileJump cleanup logic wasn't working properly when the trash contained too many files, so I've updated it to delete trash files in batches of 100. I also addressed a few other issues. All integration tests are passing:
rclone-integration-tests.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants