Downloads, CDN, and Delivery Methods - softerfish/fyuhls GitHub Wiki
Fyuhls separates the public download experience from the actual delivery method used underneath.
That matters because the page a user sees and the transport path used to deliver the bytes are not always the same thing.
The app can still show the normal download page while deciding whether the final transfer should use:
- app-controlled PHP delivery
- direct object-storage delivery
- CDN redirect
- Nginx accelerated delivery
- Apache X-SendFile
- LiteSpeed internal delivery
Fyuhls decides download behavior based on:
- file state
- package limits and gating
- security rules
- delivery method configured on the storage node
- CDN settings
- whether rewards or fraud proof requires tighter control
A download can still go through:
- wait timers
- captcha
- share fields
- package checks
- country or account gating
- abuse reporting UI
before the file bytes are actually handed off. That handoff is where the delivery method matters.
Fyuhls stays in the middle of the transfer logic.
Use it when you want:
- strongest application control
- the safest compatibility path
- a simpler troubleshooting path
Fyuhls can redirect the client toward the storage origin more directly for some public object-storage files.
Fyuhls can redirect eligible public files to a CDN base URL when configured.
This is useful when:
- you have a clean public CDN hostname
- you want lower origin pressure
- you want better geographic delivery
Nginx can accelerate delivery while keeping Fyuhls in control of authorization and handoff. Fyuhls can also integrate with a dedicated Nginx completion log path for completion-aware workflows.
Apache can hand off actual file serving after Fyuhls approves access.
LiteSpeed can offer a similar accelerated handoff path.
Most site-wide delivery behavior lives in:
- Admin > Config Hub > Downloads
Important settings there include:
- require account to download
- block downloads by country
- track active download connections
- process remote URL downloads in background
- enable streaming support
- Nginx completion log path
- Nginx completion retention
- Nginx completion max lines per run
- enable CDN redirects for eligible public object-storage files
- CDN base URL
The same user-facing download family now shares a more consistent rendering path for:
- normal download pages
- file not found states
- private-file states
- VPN or proxy blocked states
- account-required and region-blocked states
- limit and expired-link states
That matters because ad placement and blocked-state messaging are now much more consistent across those pages.
Even if delivery is technically available, package settings can still control:
- whether downloads require login
- wait times
- daily bandwidth allowance
- concurrent download limits
So a delivery issue is not always a storage issue. Sometimes it is simply a package rule.
If Track Active Download Connections is enabled, Fyuhls can monitor current download sessions more actively. That matters for:
- concurrent-download limits
- live download inspection
- some support and fraud-review workflows
This tells Fyuhls where the dedicated Nginx completion access log lives so the app can ingest trustworthy completion events for eligible workflows.
If this is wrong:
- completion events can be skipped
- reward proof can degrade
- admin warnings can appear about missing trusted completion data
CDN redirects are great when:
- files are public
- you want lower origin pressure
- you want edge caching
They are a poor fit when:
- the file should stay tightly app-controlled
- you depend on transport behavior that requires tighter app visibility
- you need delivery behavior that should remain tightly coupled to rewards verification or fraud review
Streaming support is separate from standard file downloads. A working stream flow does not prove that ZIP, PDF, or EXE delivery is configured correctly.
Use this order:
- identify the storage node used by the file
- identify that node’s delivery method
- check package rules and guest/account restrictions
- check whether CDN redirects are enabled
- check whether the file is eligible for the configured path
- review System Status and delivery diagnostics
- if using Nginx completion-aware behavior, verify the log path and log format
Check:
- whether you are using a start-based or completion-aware path
- Nginx completion log configuration
- whether the path is appropriate for your payout-proof requirements
- whether the Security page is using ProxyCheck Intelligence mode when you expect proxy/VPN signals to feed Rewards Fraud without blocking downloads
Check:
- CDN base URL
- path assumptions
- whether the file is actually eligible
Check:
- whether the file is falling back to app-controlled PHP
- whether CDN or accelerated delivery is actually active
- whether the storage node and server path are healthy
- decide delivery method intentionally per environment
- keep package rules and delivery rules mentally separate
- use CDN redirects only for clean, trusted public delivery paths
- verify Nginx completion-log settings if you depend on completion-aware workflows
- test a real download path after changing storage or delivery settings
Fyuhls always owns the download decision, but the final byte path can vary. If you understand the difference between the user-facing flow and the underlying delivery method, troubleshooting becomes much easier.