Skip to content
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

Simplify filefetcher, remove chunking and use guzzle #26

Merged
merged 13 commits into from
Feb 17, 2023
Merged

Conversation

dafeder
Copy link
Member

@dafeder dafeder commented Dec 21, 2022

This removes a major feature from FileFetcher which has proven too hard to get right: chunking file downloads and doing them in batches. We have continued to run into edge cases where we see file corruption occurring as a side effect of this, and the performance is a major issue. Running on a web server with reasonable bandwidth, even a 7GB file should be downloadable in about 10-15 minutes, which seems reasonable to do in a single pass.

We now use native php copy() for local file copying, and guzzle for remote copy. Future improvements could include passing specific guzzle config to the processor. We may however simply want to move all of this into DKAN core, rely more heavily on DKAN and Drupal APIs.

This PR also simplifies a few things in the library - we remove the php bridge class, eliminate the LastResort processor (the class is still there, as an empty extension of Local, in case any references to it exist out there), make testing a little more straightforward and streamline the CI.

See GetDKAN/dkan#3892 for DKAN integration.

This would necessitate a 5.x tag.

@dafeder dafeder requested a review from janette February 17, 2023 17:25
@janette janette merged commit 3b92fd5 into master Feb 17, 2023
@janette janette deleted the guzzle-remote branch February 17, 2023 17:38
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.

3 participants