Skip to content

Latest commit

 

History

History
51 lines (39 loc) · 2.34 KB

File metadata and controls

51 lines (39 loc) · 2.34 KB

Single Layer Solution: BLOB Storing

//[doc-nav]
{
  "Previous": {
    "Name": "Multi-Tenancy",
    "Path": "solution-templates/single-layer-web-application/multi-tenancy"
  },
  "Next": {
    "Name": "CORS Configuration",
    "Path": "solution-templates/single-layer-web-application/cors-configuration"
  }
}

Some of the features mentioned in this document may not be available in the free version. We're using the * symbol to indicate that a feature is available in the Team and Higher licenses.

This document explains how to store BLOBs (Binary Large Objects) in a single-layer solution. Storing files, images, videos, and other large objects is common in distributed systems. For more details, refer to the BLOB Storing System documentation.

In the single-layer solution template, the Database Provider is used to store BLOBs in the database. The Volo.Abp.BlobStoring.Database.EntityFrameworkCore or Volo.Abp.BlobStoring.Database.MongoDB package provides the required implementations for storing and retrieving BLOBs in the database. This setup is integrated into the single-layer solution template and is used across all related projects. You can modify the database configuration in the appsettings.json file of the API project.

You can use the IBlobContainer or IBlobContainer<T> service to store and retrieve BLOBs. Here is an example of storing a BLOB:

public class MyService : ITransientDependency
{
    private readonly IBlobContainer _blobContainer;

    public MyService(IBlobContainer blobContainer)
    {
        _blobContainer = blobContainer;
    }

    public async Task SaveBytesAsync(byte[] bytes)
    {
        await _blobContainer.SaveAsync("my-blob-1", bytes);
    }

    public async Task<byte[]> GetBytesAsync()
    {
        return await _blobContainer.GetAllBytesOrNullAsync("my-blob-1");
    }
}

File Management Module

The File Management module is optional and can be added to the solution during the creation process. It provides a user interface for managing folders and files. For more information, see the File Management * document.

file-management