Storage Objects

Update file visibility (public/private)

Changed on

Change whether a file is publicly accessible. Only the file owner or a service key can change visibility. If the bucket defines UPDATE policies, the owner must also satisfy one of them.

  • Public files can be downloaded with just an anon key (no user authentication required)
  • Private files (default) require authentication and must pass policy checks
  • All downloads go through the Volcano API - there is no direct access to the underlying store
patch/storage/{bucketName}/{path}/visibility

Request

  • Base URL: https://api.volcano.dev
  • URL: https://api.volcano.dev/storage/{bucketName}/{path}/visibility
  • Auth: one of:
    • HTTP bearer
    • HTTP bearer

Path parameters

bucketNamestring required

Storage bucket name

pathstring required

Object path within bucket

Request body

is_publicboolean required

Whether the file should be publicly accessible

Response

Visibility updated

idstring uuid required
bucket_idstring uuid required
namestring required

Full path within bucket (e.g., "users/abc123/avatar.png")

owner_idstring uuid nullable

Auth user who uploaded (null for anonymous/service)

is_publicboolean required

If true, the file can be downloaded with just an anon key (no user authentication). Files are private by default. Only the owner or a service key can change visibility.

sizeinteger required

File size in bytes

mime_typestring required

MIME type

etagstring

Entity tag for cache validation

metadataobject

Custom user metadata (key-value pairs). Limits: Maximum 50 keys, maximum 10KB total serialized size.

created_atstring date-time
updated_atstring date-time
public_urlstring uri

Shareable public URL for this file (only set for public files with is_public=true). This URL requires NO authentication and can be embedded in HTML, shared via email, etc. The URL is properly URL-encoded by the server - use it as-is without additional encoding.

Changes

    • ▲

      added the new path request parameter bucketName

    • ▲

      added the new required request property

    • ▲

      the request's body type changed from no type to object

    • ▲

      the response's body type changed from no type to object for status

    • ○

      added the optional property to the response with the status

    • ○

      added the optional property to the response with the status

    • ○

      added the optional property to the response with the status

    • ○

      added the optional property to the response with the status

    • ○

      added the optional property to the response with the status

    • ○

      added the optional property to the response with the status

    • ○

      added the required property to the response with the status

    • ○

      added the required property to the response with the status

    • ○

      added the required property to the response with the status

    • ○

      added the required property to the response with the status

    • ○

      added the required property to the response with the status

    • ○

      added the required property to the response with the status

    • ▲

      the request's body type changed from object to no type

    • ▲

      the response's body type changed from object to no type for status

    • ▲

      removed the required property from the response with the status

    • ▲

      removed the required property from the response with the status

    • ▲

      removed the required property from the response with the status

    • ▲

      removed the required property from the response with the status

    • ▲

      removed the required property from the response with the status

    • ▲

      removed the required property from the response with the status

    • ●

      deleted the path request parameter bucketName

    • ●

      removed the request property

    • ●

      removed the optional property from the response with the status

    • ●

      removed the optional property from the response with the status

    • ●

      removed the optional property from the response with the status

    • ●

      removed the optional property from the response with the status

    • ●

      removed the optional property from the response with the status

    • ●

      removed the optional property from the response with the status