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

Flysystem Cos Laravel Package

overtrue/flysystem-cos

Flysystem adapter for Tencent Cloud COS (Cloud Object Storage). Plug Tencent COS into League Flysystem and Laravel's filesystem so you can read, write, and manage remote objects using the familiar Storage API.

Deep Wiki
Context7

Product Decisions This Supports

  • China-market entry / regional expansion. Tencent Cloud COS is a common storage target for products serving mainland China (latency, ICP-friendly hosting, domestic CDN integration). This adapter lets the same Laravel codebase write to COS via the standard Storage facade — the expansion becomes a config change, not a re-architecture of the upload layer.
  • Multi-cloud / bring-your-own-bucket strategy. Because Flysystem is an interface, adding COS as a disk sits alongside S3/GCS/local without branching application logic. That supports a roadmap item like "customer-supplied storage" or "data residency by region" at low incremental cost.
  • Build vs. buy. Anything file-related is undifferentiated plumbing. Buying a ~one-class adapter is clearly correct versus maintaining a bespoke COS client; the only real decision is which adapter.
  • Feature and cost decisions it unblocks: user-generated media and avatars, document/export delivery, CDN-backed static assets, database and log backups (e.g., spatie/laravel-backup targets), and private-file sharing via signed URLs. It also makes unit-economics comparisons concrete — COS egress and storage pricing for CN traffic vs. S3/CloudFront — which is often the deciding input for the China launch business case.
  • Lock-in posture. Adopting a Flysystem adapter rather than calling the Tencent SDK directly is itself a product decision: it preserves portability of file operations if the cloud vendor decision is revisited.

When to Consider This Package

Adopt when:

  • You are on Laravel (or any Flysystem-based app) and have a concrete, near-term requirement to read/write Tencent COS — not a hypothetical one.
  • You are serving mainland China, or an enterprise customer's contract mandates Tencent Cloud.
  • You already own COS buckets and want Storage::disk('cos') semantics, including signed/temporary URLs, without writing and owning an adapter.
  • Your needs are conventional: put/get/delete, existence checks, URLs, directory listing, basic streaming.

Look elsewhere or defer when:

  • No COS requirement. Use the first-party league/flysystem-aws-s3-v3 for S3; it is better supported and needs no evaluation.
  • Vendor/SLA sensitivity. 80 stars with an unidentified upstream repository implies a single-maintainer bus factor. For core infrastructure, that is a real risk — treat this as a convenience dependency, not a platform commitment.
  • Version fit. Confirm Flysystem major compatibility against your Laravel version (Flysystem 1.x vs. 3.x is a hard break). An incompatible adapter is a non-starter regardless of features.
  • Advanced object-storage features — lifecycle rules, cross-region replication, inventory, event notifications, KMS/server-side encryption, resumable multipart at scale. Those typically require the native Tencent SDK (qcloud/cos-sdk-v5) directly, and the adapter may not surface them.
  • You need a support contract or security review trail. No named vendor means your team owns patching.

Adoption gate: pin the version, wrap it behind a filesystem.disks.cos config block plus an integration test that exercises upload, signed URL, and delete against a real bucket. That makes the exit cost measurable before you commit.

How to Pitch It (Stakeholders)

To executives: "A small, free adapter that lets us store and serve files from Tencent Cloud's object storage without changing our application code. It removes the main technical blocker for serving users in mainland China and lets us hit COS/China CDN pricing instead of paying to move bytes across borders. Cost is a few hours of integration and an ongoing maintenance risk we can contain by isolating it behind our existing storage configuration."

To engineering: "It's a Flysystem adapter, so it registers as a normal Laravel disk — no new abstractions, no SDK calls scattered through the codebase. Roughly one dependency, standard Storage API, signed URLs included. Caveats: small community (~80 stars) and an unverified upstream repo, so pin the version, keep the disk config as the only touchpoint, and have the fallback be the native qcloud/cos-sdk-v5 behind the same interface. Before adopting, confirm Flysystem major compatibility with our Laravel version and add one integration test against a real bucket so a swap later is a half-day, not a sprint."

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.
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment