> ## Documentation Index
> Fetch the complete documentation index at: https://docs.basaltic.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Subir objeto

> Sube un objeto. Los subrecursos por objeto se utilizan como parámetros de consulta en este método: `?tagging` reemplaza el conjunto de etiquetas del objeto (cuerpo JSON) y devuelve 204 sin cuerpo.

Una sola carga lleva como máximo 5 GiB. Cualquier cosa más grande es una subida multiparte: inicie una en `/v1/buckets/{bucket}/multipart-uploads`, envíe los bytes como partes, y complétela. Un cuerpo que supere el límite se rechaza con 413 para una declaración de gran tamaño o un cuerpo que fluye más allá del límite.

Las cargas de carga útil requieren Content-Length, incluyendo 0 para un cuerpo vacío. Las cargas en bloque sin declarar longitud devuelven HTTP 411 (MISSING_CONTENT_LENGTH) antes de almacenarlas. Almacena primero la salida de longitud desconocida o carga partes de varias partes almacenadas en búfer con una longitud conocida por parte.


<Info>
  Requiere la acción de IAM **`storage:PutObject`**. Consulte [permisos de almacenamiento](/es/storage/permissions) para obtener la lista completa, lo que cubre cada una y un ejemplo de política.
</Info>


## OpenAPI

````yaml /es/api-reference/specs/storage.yaml put /v1/buckets/{bucket}/objects/{key}
openapi: 3.0.3
info:
  title: API de almacenamiento de Basaltic
  version: 1.0.0
  description: >
    Las referencias de almacenamiento aceptan UUID, CRN o nombres de ámbito en
    un campo. Los nombres de instantáneas requieren un volumen fijo;
    source_snapshot solo acepta UUID o CRN anidado. Bloquee volúmenes con sus
    instantáneas y políticas de instantáneas, además de la administración de
    buckets para el almacenamiento de objetos. El protocolo de cable S3 en sí se
    sirve por separado en `objects.{region}.basaltic.cloud`.
  contact:
    name: Basaltic Support
    email: ping@basaltic.sh
  license:
    name: Proprietary
    url: https://basaltic.sh/terms
servers:
  - url: https://storage.{region}.basaltic.sh
    description: Punto final de API regional
    variables:
      region:
        default: sa-saopaulo-1
        description: Código de región
security:
  - BearerAuth: []
paths:
  /v1/buckets/{bucket}/objects/{key}:
    parameters:
      - name: bucket
        in: path
        required: true
        schema:
          type: string
          example: my-app-assets
      - name: key
        in: path
        required: true
        description: >
          Tecla de objeto. Las barras diagonales hacia adelante dentro de la
          clave DEBEN ser codificadas en URL por el cliente.
        schema:
          type: string
          example: images/logo.png
    put:
      tags:
        - Buckets
      summary: Subir objeto
      description: >
        Sube un objeto. Los subrecursos por objeto se utilizan como parámetros
        de consulta en este método: `?tagging` reemplaza el conjunto de
        etiquetas del objeto (cuerpo JSON) y devuelve 204 sin cuerpo.


        Una sola carga lleva como máximo 5 GiB. Cualquier cosa más grande es una
        subida multiparte: inicie una en
        `/v1/buckets/{bucket}/multipart-uploads`, envíe los bytes como partes, y
        complétela. Un cuerpo que supere el límite se rechaza con 413 para una
        declaración de gran tamaño o un cuerpo que fluye más allá del límite.


        Las cargas de carga útil requieren Content-Length, incluyendo 0 para un
        cuerpo vacío. Las cargas en bloque sin declarar longitud devuelven HTTP
        411 (MISSING_CONTENT_LENGTH) antes de almacenarlas. Almacena primero la
        salida de longitud desconocida o carga partes de varias partes
        almacenadas en búfer con una longitud conocida por parte.
      operationId: putObject
      requestBody:
        required: true
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: Almacenado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutObjectResponse'
        '204':
          description: Subrecurso de objeto actualizado (p. ej. `?tagging`).
        '400':
          description: Clase de almacenamiento o algoritmo SSE no admitido.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: El llamador carece del permiso IAM requerido.
        '404':
          description: No hay tal bucket.
        '411':
          description: Falta la longitud de la carga declarada (MISSING_CONTENT_LENGTH).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '413':
          description: El objeto excede el tamaño máximo.
      security:
        - BearerAuth: []
components:
  schemas:
    PutObjectResponse:
      type: object
      required:
        - key
        - etag
        - size
      properties:
        key:
          type: string
          example: images/logo.png
        etag:
          type: string
          example: '"9b2cf535f27731c974343645a3985328"'
        size:
          type: integer
          format: int64
          example: 20480
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - request_id
          properties:
            code:
              type: string
              description: Código de error que identifica el tipo de error
              example: INVALID_INPUT
            message:
              type: string
              description: Mensaje de error legible por el ser humano
              example: Invalid request parameters
            params:
              type: object
              additionalProperties: true
              description: >-
                Valores no sensibles opcionales para la interpolación de errores
                localizados, codificados por código de error. Nunca presente por
                errores del servidor.
              example:
                instances: 2
                pools: 0
            request_id:
              type: string
              format: uuid
              description: Solicitar ID para depuración
              example: 550e8400-e29b-41d4-a716-446655440000
  responses:
    Unauthorized:
      description: Se requiere autenticación o el token no es válido
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: UNAUTHORIZED
              message: Authentication required
              request_id: 550e8400-e29b-41d4-a716-446655440000
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >+
        Un token bearer de OAuth 2.0, enviado como `Authorization: Bearer
        <token>`. Esta es la forma recomendada de autenticación.


        Obtén el token intercambiando el par de claves de acceso de una cuenta
        de servicio en `POST /v1/oauth/token` con
        `grant_type=client_credentials`. Es el flujo estándar de credenciales de
        cliente; las bibliotecas compatibles con OAuth pueden obtener y renovar
        el token por ti.


        ```

        curl -s -u "$KEY_ID:$SECRET" -d grant_type=client_credentials \
          https://iam.basaltic.sh/v1/oauth/token
        ```


        Los tokens duran una hora por defecto. El mismo par de claves de acceso
        también sirve como credencial AWS SigV4 para el endpoint de objetos
        compatible con S3, que solo acepta ese método de autenticación.


````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.