Endpoint de API
La API de almacenamiento expone endpoints a los que se puede acceder mediante solicitudes HTTP. Las siguientes secciones describen los endpoints disponibles y su uso.
Los endpoints de la API de almacenamiento hacen uso de la funcionalidad locals de Astro propagada por un middleware para manejar la autorización. Asegúrate de que el navegador o cliente que realiza las solicitudes provenga de un usuario de StudioCMS con sesión iniciada y los permisos adecuados para realizar operaciones de almacenamiento.
Método: PUT
Sección titulada «Método: PUT»Para subir o actualizar un archivo en el sistema de almacenamiento, puedes usar el método PUT en el endpoint /studiocms_api/storage/manager.
PUT /studiocms_api/storage/manager HTTP/1.1Host: example.comContent-Type: application/octet-streamAccept: application/jsonHeaders: x-storage-key: my-file.txt
<contenido-del-archivo>Respuesta exitosa
Sección titulada «Respuesta exitosa»HTTP/1.1 200 OKContent-Type: application/json
{ "message": "string", "key": "string"}Respuesta de error
Sección titulada «Respuesta de error»HTTP/1.1 4XX/5XX ErrorContent-Type: application/json
{ "error": "string"}Método: POST
Sección titulada «Método: POST»POST /studiocms_api/storage/manager HTTP/1.1Host: example.comContent-Type: application/jsonAccept: application/json
{ "action": "resolveUrl | publicUrl | upload | list | delete | rename | download | cleanup | mappings | test", ...parámetros adicionales según la acción...}Acciones
Sección titulada «Acciones»resolveUrl- Parámetros:
{ identifier: string } - Respuesta:
UrlMetadata
- Parámetros:
publicUrl- Parámetros:
{ key: string } - Respuesta:
UrlMetadata& { identifier: string }
- Parámetros:
upload- Parámetros:
{ key: string, contentType: string } - Respuesta:
{ url: string, key: string }
- Parámetros:
list- Parámetros:
{ prefix?: string, key?: string } - Respuesta:
{ files:File[]}
- Parámetros:
delete- Parámetros:
{ key: string } - Respuesta:
{ success: boolean }
- Parámetros:
rename- Parámetros:
{ key: string, newKey: string } - Respuesta:
{ success: boolean, newKey: string }
- Parámetros:
download- Parámetros:
{ key: string } - Respuesta:
{ url: string }
- Parámetros:
cleanup- Parámetros:
N/A - Respuesta:
{ deletedCount: number }
- Parámetros:
mappings- Parámetros:
N/A - Respuesta:
{ mappings:UrlMetadata[]}
- Parámetros:
test- Parámetros:
N/A - Respuesta:
{ success: boolean, message: string, provider: string }
- Parámetros:
Respuesta de error
Sección titulada «Respuesta de error»HTTP/1.1 4XX/5XX ErrorContent-Type: application/json
{ "error": "string"}UrlMetadata
Sección titulada «UrlMetadata»export interface UrlMetadata { url: string; isPermanent: boolean; expiresAt?: number; // Marca de tiempo Unix en ms}Archivo
Sección titulada «Archivo»export interface File { key: string | undefined; size: number | undefined; lastModified: Date | undefined;}