Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Owncloud Uploader Bundle Laravel Package

meloflavio/owncloud-uploader-bundle

A Symfony bundle that integrates ownCloud file uploading into your application, providing services and configuration to send files to an ownCloud server. It simplifies wiring uploads into Symfony projects through the bundle's container configuration and uploader services.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package name and description state this is a Symfony bundle (owncloud-uploader-bundle) that plugs an ownCloud storage backend into VichUploaderBundle — not a Laravel package. VichUploaderBundle is a Symfony-only bundle built on Doctrine entity mappings and Symfony's DI container. There is no Laravel service provider, facade, or config publishing here. If the target application is Laravel, architecture fit is effectively zero; this would require a rewrite against Laravel's Storage/Flysystem layer. If the target is a Symfony application already using VichUploaderBundle for entity-attached file uploads, the fit is narrow but real: it is a drop-in storage driver, and the integration surface is a single uploader service plus a Vich mapping config block.

Integration feasibility. Small surface area — the bundle almost certainly registers one service implementing Vich's StorageInterface and communicates with ownCloud over WebDAV (or the ownCloud OCS API). Setup is composer require, bundle registration in bundles.php, a vich_uploader mapping pointing at the custom uploader, and ownCloud credentials (host, user, app-password/token, base path). No database schema changes. Realistically a half-day spike for a Symfony developer with ownCloud access.

Technical risk — this is the dominant finding. Zero stars, zero dependents, single maintainer, last release June 2023, no evidence of CI, test coverage, security policy, or issue triage. The package is effectively unvetted and unmaintained. Specific risks:

  • Supply chain: pulling an unaudited dependency with write access to your storage credentials is a meaningful risk; credentials in config, no known audit.
  • Constraint drift: PHP and Symfony version constraints are likely stale; a 2023 Symfony bundle may not resolve against Symfony 6.4/7.x or PHP 8.3+.
  • API surface assumptions: Vich's StorageInterface has changed across major versions; the implementation may target an older contract.
  • Provenance confusion: ownCloud vs. Nextcloud forks share lineage; this may be a lightly renamed copy of a Nextcloud uploader bundle, which changes who fixes bugs.

Key questions to ask before committing.

  1. Does it implement Vich's current StorageInterface (upload/remove), and against which Vich major version?
  2. WebDAV or OCS API? Does it support chunked uploads (critical above ~100 MB) or is it single-request PUT?
  3. How are collisions, overwrites, and deletes handled — does removing the Doctrine entity remove the remote file, and what happens on partial failure?
  4. Are file URLs generated via ownCloud share links, or does the app proxy bytes?
  5. What are the declared composer.json constraints (PHP, Symfony, VichUploaderBundle)?
  6. Is there a license file, and is the maintainer reachable/responsive?
  7. Is there any test suite, and does it mock the ownCloud client or hit a live instance?

Integration Approach

Stack fit. Assumed stack: PHP 8.x, Symfony (version TBD), Doctrine ORM, VichUploaderBundle ^1.x, ownCloud 10.x server reachable over HTTPS. The bundle occupies the "storage driver" slot only — it does not replace Vich's entity mapping, lifecycle listeners, or naming strategy. That is the good news: it is a low-blast-radius insertion point.

Migration path. Two distinct paths, and they should not be conflated:

  • Symfony target: composer require meloflavio/owncloud-uploader-bundle, register the bundle, add the uploader service ID to the Vich mapping's uploader key, add credentials to config/packages/. Existing local-Filesystem mappings stay untouched; migrate one entity mapping at a time.
  • Laravel target: do not use this package. Reimplement on Laravel's filesystem abstraction with a Flysystem WebDAV adapter as a custom disk (config/filesystems.php), or use ownCloud's OCS API directly via HTTP client. Budget this as a small custom build, not an integration.

Compatibility. Treat as unverified until proven. Two things must be checked in the first hour: (a) composer why-not / dependency resolution against the app's pinned Symfony and PHP versions, and (b) a real round-trip upload+delete against a staging ownCloud instance, including a file over 50 MB to expose missing chunking. If resolution fails, the fork-and-patch cost is low (small codebase) but must be explicitly accepted.

Sequencing.

  1. Spike (1–2 days): read the source end to end (~an afternoon), identify the Vich contract version and transport, confirm constraints resolve.
  2. Fork and vendor into a private namespace before any production use — you want patch control and a pinned, auditable commit.
  3. Staging round-trip with real credentials: upload, overwrite, delete, large file, network timeout, bad credentials.
  4. Single-entity pilot in production behind a feature flag, with a local-Filesystem fallback mapping ready.
  5. Roll out mapping-by-mapping; never migrate all entities in one release.

Operational Impact

Maintenance. Assume you own this code. With zero dependents and a single maintainer last active in 2023, upstream fixes should be treated as nonexistent. Budget: fork it, pin it, and allocate roughly 5–10% of one backend engineer's time for security patches, Symfony/Vich upgrade compatibility, and bug fixes. The upside is that the codebase is small enough to fully understand.

Support. No community, no vendor, no issue triage, no security disclosure channel. Internal support means one or two engineers who have read the source. Document the WebDAV endpoints, credential rotation procedure, and the fork's delta from upstream as an operational runbook — this is not optional given the bus factor.

Scaling. Throughput is bounded by the ownCloud backend and the transport, not by the bundle. Key concerns:

  • No chunking (if confirmed) caps practical file size and makes large uploads timeout-prone behind load balancers and reverse proxies; PHP upload_max_filesize/post_max_size/max_execution_time all become gating.
  • Bytes through the app server: uploads proxy through PHP rather than going client-to-storage, so app-server egress and PHP-FPM worker occupancy scale with file volume. High-volume media workloads will need worker pool sizing or a direct-to-ownCloud path.
  • Reads: if downloads also proxy, ownCloud becomes a latency dependency on request paths; prefer share-link URLs where acceptable.

Failure modes to design for.

  • Silent partial failure: PHP upload succeeds, WebDAV PUT fails, Doctrine row persists — orphaned entity with no file. Needs an explicit verification/reconciliation job.
  • Orphaned blobs: remote file exists, entity deleted, or vice versa. Requires a periodic drift-check between DB and ownCloud.
  • Credential expiry/rotation: ownCloud app-passwords expire or get revoked; failure presents as a generic upload error. Needs alerting on auth-class errors specifically.
  • Large-file timeouts mid-transfer leaving truncated remote files.
  • Name collisions on re-upload overwriting prior versions with no recovery.
  • No retry/backoff: transient 5xx from ownCloud propagates straight to the user request.

Ramp-up. Code ramp-up is short — a Symfony developer can read the whole bundle in under a day. The real ramp-up is ownCloud operations knowledge: WebDAV semantics, quota behavior, share/permission model, and credential management. Estimate 1–3 days to a working staging integration, and 2–4 weeks to something hardened enough for production traffic (fork, tests, reconciliation job, alerting, runbook).

Recommendation. Viable only for a Symfony application already committed to VichUploaderBundle and an ownCloud backend, and only after forking and hardening. For a Laravel application, or for any team without appetite to own a vendored dependency, the correct call is to decline and build the equivalent on Flysystem's WebDAV adapter — roughly comparable effort, with a maintained dependency and an upgrade path you control.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator