Browse Source

Added asset size options.

pull/334/head
Sebastian Stehle 7 years ago
parent
commit
c0b7070c1a
  1. 2
      src/Squidex.Domain.Apps.Entities/Assets/AssetOptions.cs
  2. 14
      src/Squidex/Areas/Api/Controllers/Assets/AssetConfig.cs
  3. 10
      src/Squidex/Areas/Api/Controllers/Assets/AssetsController.cs
  4. 7
      src/Squidex/appsettings.json

2
src/Squidex.Domain.Apps.Entities/Assets/AssetOptions.cs

@ -10,5 +10,7 @@ namespace Squidex.Domain.Apps.Entities.Assets
public sealed class AssetOptions public sealed class AssetOptions
{ {
public int MaxResults { get; set; } = 200; public int MaxResults { get; set; } = 200;
public long MaxSize { get; set; } = 5 * 1024 * 1024;
} }
} }

14
src/Squidex/Areas/Api/Controllers/Assets/AssetConfig.cs

@ -1,14 +0,0 @@
// ==========================================================================
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschränkt)
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
namespace Squidex.Areas.Api.Controllers.Assets
{
public sealed class AssetConfig
{
public long MaxSize { get; set; } = 5 * 1024 * 1024;
}
}

10
src/Squidex/Areas/Api/Controllers/Assets/AssetsController.cs

@ -39,19 +39,19 @@ namespace Squidex.Areas.Api.Controllers.Assets
private readonly IAppPlansProvider appPlanProvider; private readonly IAppPlansProvider appPlanProvider;
private readonly IOptions<MyContentsControllerOptions> controllerOptions; private readonly IOptions<MyContentsControllerOptions> controllerOptions;
private readonly ITagService tagService; private readonly ITagService tagService;
private readonly AssetConfig assetsConfig; private readonly AssetOptions assetOptions;
public AssetsController( public AssetsController(
ICommandBus commandBus, ICommandBus commandBus,
IAssetQueryService assetQuery, IAssetQueryService assetQuery,
IAssetStatsRepository assetStatsRepository, IAssetStatsRepository assetStatsRepository,
IAppPlansProvider appPlanProvider, IAppPlansProvider appPlanProvider,
IOptions<AssetConfig> assetsConfig, IOptions<AssetOptions> assetOptions,
IOptions<MyContentsControllerOptions> controllerOptions, IOptions<MyContentsControllerOptions> controllerOptions,
ITagService tagService) ITagService tagService)
: base(commandBus) : base(commandBus)
{ {
this.assetsConfig = assetsConfig.Value; this.assetOptions = assetOptions.Value;
this.assetQuery = assetQuery; this.assetQuery = assetQuery;
this.assetStatsRepository = assetStatsRepository; this.assetStatsRepository = assetStatsRepository;
this.appPlanProvider = appPlanProvider; this.appPlanProvider = appPlanProvider;
@ -273,9 +273,9 @@ namespace Squidex.Areas.Api.Controllers.Assets
var formFile = file[0]; var formFile = file[0];
if (formFile.Length > assetsConfig.MaxSize) if (formFile.Length > assetOptions.MaxSize)
{ {
var error = new ValidationError($"File size cannot be longer than {assetsConfig.MaxSize.ToReadableSize()}."); var error = new ValidationError($"File size cannot be longer than {assetOptions.MaxSize.ToReadableSize()}.");
throw new ValidationException("Cannot create asset.", error); throw new ValidationException("Cannot create asset.", error);
} }

7
src/Squidex/appsettings.json

@ -78,7 +78,12 @@
* *
* Warning: Use pagination and not large number of items. * Warning: Use pagination and not large number of items.
*/ */
"maxResults": 200 "maxResults": 200,
/*
* The maximum file size in bytes. Default: 5MB
*/
"maxSize": 5242880
}, },
"logging": { "logging": {

Loading…
Cancel
Save