Skip to content

Image Storage

With the Stripo Plugin, you have the flexibility to choose where all your images should be stored, and this feature is available for all pricing plans. While Stripo provides its own storage as the default option, you may prefer to use your own storage solutions for better control and management.

Please be advised that there might be a limitation to the use of the Stripo storage depending on the selected Plugin subscription plan. In order to have full control over the images used by your users in newsletters, we do recommend keeping them on your own file storage servers.

Default Stripo Storage

Stripo offers default storage for your images, but depending on your Plugin subscription plan, there might be some limitations. To have full control over the images used by your users in newsletters, it is recommended to store them on your own file storage servers.

Custom Storage Options

If you prefer not to use Stripo's storage, you can configure the Plugin to use any other preferred storage option. Below are examples of configurations for Custom AWS S3 bucket, Azure Blob storage, or your own server.

Custom AWS S3 Bucket

Custom AWS S3 bucket is a Plugin application configuration feature that allows you to easily connect your own Amazon Web Services S3 bucket to our Plugin for storing images.

If you choose this option, you’ll have to fill out a form to establish a connection with your storage. Please take a look at the image above to see the description of the form fields with specifications regarding the information required for each of them.

ParameterRequiredDescription
S3 bucket nameYesThe name you assigned to the bucket when creating it.
Access keyYesYou can provide AWS Root Account Credentials or IAM User Credentials (we recommend the second option for security reasons). The provided account must have the “Read” and “Write” access to the given bucket. More about AWS credentials.
Secret access keyYesYou can provide AWS Root Account Credentials or IAM User Credentials (we recommend the second option for security reasons). The provided account must have the “Read” and “Write” access to the given bucket. More about AWS credentials.
RegionYesAWS region where you created the bucket.
Base download urlYesDefine the path that will be specified at the beginning of each URL to the images hosted in your S3 bucket. For example, it may be your CDN domain name or any other address, depending on your server configuration.

Please make sure that the provided account has the Read and Write access to the given bucket.

Configuration of AWS S3 Storage

(content absolutely the same as described here https://stripo.email/plugin-api/#custom-aws-s3-bucket)

Azure Blob Storage

Azure Blob storage is a Plugin application configuration feature that allows you to easily connect your own Azure storage account to our Plugin for storing images.

To do so, you need to generate a connection string in your Azure portal account:

If you choose the “Azure Blob Storage” option, you will have to fill out the form to establish a connection with your storage. Please take a look at the image above to see the description of the form field with specification regarding the information that you will need to enter there:

ParameterRequiredDescription
Azure connection stringYesConnection string from your azure portal account.

Connecting Your Own Server

This option may be the best choice for you if you’re using another storage type or want to build a more custom and flexible solution to host your images. We created a way to connect the Plugin to a custom file system provider (via HTTP protocol), allowing you to use the Stripo editor with your own file storage, no matter which technology you use.

It is required to support the set of the methods described below to provide successful communication between the two systems: the Stripo server and yours.

The Basic Authentication is used to send these requests, so please make sure that you have specified the correct Login, Password, and Base API URL on the Stripo Plugin details page of your Stripo account (if you don’t have an account, please sign up).

Note, that your storage must support chunked-encoding mode if you want to get logs about any request. See more here

OpenAPI Specification

yaml
---
layout: post
title: Blogging Like a Hacker
---
openapi: 3.0.1
info:
  title: Stripo Plugin Storage API
  description: API specification for managing storage in the Stripo plugin.
  version: 1.0.0
servers:
  - url: https://YOUR_BASE_URL
    description: Base URL for API requests
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
  schemas:
    Document:
      type: object
      properties:
        url:
          type: string
          description: Absolute URL to the document.
        originalName:
          type: string
          description: Document name.
        uploadTime:
          type: integer
          description: Document upload time in milliseconds.
        size:
          type: integer
          description: Document size in bytes.
        height:
          type: integer
          description: Document height in pixels (px).
        width:
          type: integer
          description: Document width in pixels (px).
        thumbnailUrl:
          type: string
          description: Absolute URL of document preview thumbnail.
    Folder:
      type: object
      properties:
        key:
          type: string
          description: Generated key for the folder.
        documents:
          type: array
          items:
            $ref: '#/components/schemas/Document'
paths:
  /:
    get:
      summary: Get list of files
      description: Retrieve a list of files in specified folders.
      security:
        - basicAuth: []
      parameters:
        - name: keys
          in: query
          required: true
          description: Comma-separated list of folder keys.
          schema:
            type: string
      responses:
        '200':
          description: A list of documents grouped by folder keys.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Folder'
    post:
      summary: Upload file to storage
      description: Upload an image to the specified folder in storage.
      security:
        - basicAuth: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                key:
                  type: string
                  description: Folder key where the file will be uploaded.
                file:
                  type: string
                  format: binary
                  description: Multipart file to be uploaded.
      responses:
        '200':
          description: Uploaded file details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
  /delete:
    post:
      summary: Delete/Remove file from storage
      description: Remove a file from storage.
      security:
        - basicAuth: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  description: Absolute URL to the document.
      responses:
        '200':
          description: Successful deletion response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
  /info:
    get:
      summary: Get file info
      description: Retrieve information about a specific file.
      security:
        - basicAuth: []
      parameters:
        - name: src
          in: query
          required: true
          description: Absolute URL of the document.
          schema:
            type: string
      responses:
        '200':
          description: Specific file information.
          content:
            application/json:
              schema:
                type: object
                properties:
                  originalName:
                    type: string
                    description: Document original name.
                  size:
                    type: integer
                    description: Document size in bytes.
security:
  - basicAuth: []