[chrisalves] said: I've successfully implemented the configuration for Azure Blob Storage as described in the official documentation. However, my question is more focused on the architectural design required to make this integration scalable and efficient across all modules of my solution.
Specifically, I'm looking to understand:
- What is the recommended architecture to fully integrate Azure Blob Storage with the file handling components generated by ABP Suite?
- Where in the code generated by ABP Suite (especially in Razor Pages and related file components) should I replace or extend the default logic to redirect file uploads from local database storage to Azure Blob Storage?
- Is it advisable to create a centralized service or abstraction layer to manage blob operations across modules? If so, what would be the best practice for implementing this in a modular and maintainable way?
The documentation provides a good starting point for configuring blob storage, but it doesn't clearly outline how to adapt the ABP Suite-generated file logic to use Azure Blob Storage as the primary storage backend.
I would greatly appreciate any guidance or examples that clarify the best approach to achieve this integration in a clean and scalable manner.
Thank you!
Hello, I would like to clarify some points:
When you use the file type for a property, ABP Suite uses the Blob Storing Infrastructure of the ABP Framework, which is fully provider-independent. You can easily configure any provider you want. By default, ABP templates are configured to use the database provider. If you switch to another provider, the file content will be stored directly in the relevant provider's storage. This means that when you configure Azure, your file content (BLOB) will be stored in Azure.
In addition to these structures, ABP Suite actually only stores some metadata about the files (such as file name and content type) on the database side, whether you use a file provider, database provider, or any other provider. On the UI side, we need to know the file’s content type and have a reference to the related file type via the AppFileDescriptor entity.
This is a design choice: when you have a property named CoverImage, it will appear in the code as CoverImageId (of type Guid) and will reference the corresponding record in the AppFileDescriptors table in the database.
Thus, the storage and implementation remain provider-agnostic on the blob storage side. However, it is still necessary to store basic information about the uploaded files in the database. (You can think of this system as a similar implementation to our File Management module.)
Regards.
[sghorakavi@cpat.com] said: It is not working. I tried this as wellhttps://abp.io/docs/latest/deployment/forwarded-headers
Hi, are you using nginx (or traefik) as a reverse proxy? By any chance, can you share your reverse-proxy configuration? I need more information and preferably brief explanation about what you've done so far, to better assist you.
Btw, adding forwarded-headers is really good, you should keep it in your module class. It makes sure URLs/Cookies are produced correctly behind the proxy, so it's needed.
[devchase321] said: Hi EngincanV,
Thank you for your message. I have just added the Payment module in my solution from ABP Studio. I didn't change anything in default setup.
With default setup I am giving the error and then I have added the stripe module to the blazor and public module, but this is also giving me the same error.
Hi, I've created a Blazor application (tiered and with public-web application), imported the Payment Module:
and then I could run the application successfully:
When i check your log, it seems that your *HttpApi.Host project is not working. Can you please check that? If you are ensure, then please provide exact steps to reproduce the problem.
Regards.
Hello,
Currently, we don’t have a dedicated End-of-Support (EOS) or End-of-Life (EOL) documentation page. However, you can refer to the following resources for related information:
Please review those sections for more details.
[devchase321] said: Hi, This did not helped me. I am getting the same error in Blazor & Public application. Please help me.
Hi, we currently provide the Blazor UI only for the admin side. Could you please share the detailed reproduction steps and let us know what you’ve done so far? This will help us reproduce the issue on our end and assist you more effectively.
[yazilim.ithinka] said: Has the issue been resolved? I had used this link https://abp.io/support/questions/8627/Install-specific-version-of-ABP-Studio and then I downgrade abp studio, suite, cli version but I had taken angular cannot get error. Please resolve this issue or provide installation instructions for working versions and how to proceed. This issue is disrupting our work at Abp.
Hi, we've fixed the problem but haven't released a new version yet:
Currently, the best thing you can do is to manually fix the controller namespace or update the related templates. I suggest the first approach, you can open the relevant controller and add the required namespaces, and delete the wrong namespace:
- using ClassifAI.ManagementService.Shared;
+ using ClassifAI.ManagementService.Services.Categories;
+ using ClassifAI.ManagementService.Services.Dtos.Categories;
+ using ClassifAI.ManagementService.Services.Dtos.Shared;
Also, you need to update the namespaces in your *Control.Extended.cs file.
[yazilim.ithinka] said: Has the issue been resolved? When I checked today, the same error still persists.
Hi, no, currently it's not resolved. We will try to fix it asap.
Hi, thanks for the suggestion. You are right, we should also add HandleErrorAsync for the delete methods. I'll make the related changes, thanks.
Regards.
[48949912] said:
[EngincanV] said:
[48949912] said:
[maliming] said:
I will forward to our suite team.Thanks.
Excuse me!
How to Resolve this problem?Hi, the problem you stated is a known problem and we will fix it soon. In the meantime, the only possible solution is to fix it in the generated code. So, manually delete the related line in your automapper class for now.
Excuse me! How long will it take to fix? The project is urgent. Manual modification is possible, but it's a bit tedious and will require extra time.
We have an open issue for this problem and will try to fix it asap, but unfortunately, we can't give an exact time for now.
[48949912] said:
[maliming] said: I will forward to our suite team.
Thanks.
Excuse me! How to Resolve this problem?
Hi, the problem you stated is a known problem and we will fix it soon. In the meantime, the only possible solution is to fix it in the generated code. So, manually delete the related line in your automapper class for now.