Browse Source

Constants added

pull/4161/head
Ahmet 6 years ago
parent
commit
41259e39a0
  1. 9
      modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/BlobConsts.cs
  2. 2
      modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/ContainerConsts.cs
  3. 28
      modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/Blob.cs
  4. 3
      modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/Container.cs
  5. 2
      modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobProvider.cs
  6. 3
      modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/BlobStoringDatabaseDbContextModelCreatingExtensions.cs

9
modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/BlobConsts.cs

@ -0,0 +1,9 @@
namespace Volo.Abp.BlobStoring.Database
{
public static class BlobConsts
{
public const int MaxNameLength = 256;
public const int MaxContentLength = 2_000_000_000; // 2 GB
}
}

2
modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/ContainerConsts.cs

@ -2,6 +2,6 @@
{ {
public static class ContainerConsts public static class ContainerConsts
{ {
public const int MaxNameLength = 64; // TODO: find best length public const int MaxNameLength = 128;
} }
} }

28
modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/Blob.cs

@ -1,5 +1,5 @@
using System; using JetBrains.Annotations;
using Volo.Abp.Data; using System;
using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Entities;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
@ -13,14 +13,32 @@ namespace Volo.Abp.BlobStoring.Database
public string Name { get; set; } public string Name { get; set; }
public byte[] Content { get; set; } public byte[] Content { get; private set; }
public Blob(Guid id, Guid containerId, string name, byte[] content, Guid? tenantId) : base(id) public Blob(Guid id, Guid containerId, [NotNull]string name, byte[] content, Guid? tenantId) : base(id)
{ {
Check.NotNullOrWhiteSpace(name, nameof(name), BlobConsts.MaxNameLength);
CheckContent(content);
Content = content;
ContainerId = containerId; ContainerId = containerId;
Name = name; Name = name;
Content = content;
TenantId = tenantId; TenantId = tenantId;
} }
public virtual void SetContent(byte[] content)
{
CheckContent(content);
Content = content;
}
protected void CheckContent(byte[] content)
{
if (content.Length >= BlobConsts.MaxContentLength)
{
throw new AbpException("Blob content size cannot be more than 2GB.");
}
}
} }
} }

3
modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/Container.cs

@ -13,7 +13,8 @@ namespace Volo.Abp.BlobStoring.Database
public Container(Guid id, [NotNull]string name, Guid? tenantId = null) : base(id) public Container(Guid id, [NotNull]string name, Guid? tenantId = null) : base(id)
{ {
// Todo: check null and length etc Check.NotNullOrWhiteSpace(name, nameof(name), ContainerConsts.MaxNameLength);
TenantId = tenantId; TenantId = tenantId;
Name = name; Name = name;
} }

2
modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobProvider.cs

@ -31,7 +31,7 @@ namespace Volo.Abp.BlobStoring.Database
throw new BlobAlreadyExistsException($"Saving BLOB '{args.BlobName}' does already exists in the container '{args.ContainerName}'! Set {nameof(args.OverrideExisting)} if it should be overwritten."); throw new BlobAlreadyExistsException($"Saving BLOB '{args.BlobName}' does already exists in the container '{args.ContainerName}'! Set {nameof(args.OverrideExisting)} if it should be overwritten.");
} }
blob.Content = content; blob.SetContent(content);
await BlobRepository.UpdateAsync(blob); await BlobRepository.UpdateAsync(blob);
} }
else else

3
modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/BlobStoringDatabaseDbContextModelCreatingExtensions.cs

@ -36,8 +36,9 @@ namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore
b.ConfigureByConvention(); b.ConfigureByConvention();
b.Property(p => p.Name).IsRequired().HasMaxLength(ContainerConsts.MaxNameLength); b.Property(p => p.Name).IsRequired().HasMaxLength(BlobConsts.MaxNameLength);
b.Property(p => p.ContainerId).IsRequired(); b.Property(p => p.ContainerId).IsRequired();
b.Property(p => p.Content).HasMaxLength(BlobConsts.MaxContentLength);
b.HasIndex(x => x.Name); b.HasIndex(x => x.Name);
}); });

Loading…
Cancel
Save