⚗️ Testing out the File Storing System v2

This commit is contained in:
2026-01-10 16:54:22 +08:00
parent 8177bda232
commit 98c100c864
19 changed files with 1353 additions and 1035 deletions

View File

@@ -60,9 +60,7 @@ public class SnCloudFile : ModelBase, ICloudFile, IIdentifiedResource
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public string? FastUploadLink { get; set; }
public List<SnCloudFileReference> References { get; set; } = new List<SnCloudFileReference>();
public Guid AccountId { get; set; }
public Guid AccountId { get; set; }
public SnCloudFileReferenceObject ToReferenceObject()
{
@@ -112,34 +110,3 @@ public class SnCloudFile : ModelBase, ICloudFile, IIdentifiedResource
return proto;
}
}
public class SnCloudFileReference : ModelBase
{
public Guid Id { get; set; } = Guid.NewGuid();
[MaxLength(32)] public string FileId { get; set; } = null!;
[JsonIgnore] public SnCloudFile File { get; set; } = null!;
[MaxLength(1024)] public string Usage { get; set; } = null!;
[MaxLength(1024)] public string ResourceId { get; set; } = null!;
/// <summary>
/// Optional expiration date for the file reference
/// </summary>
public Instant? ExpiredAt { get; set; }
/// <summary>
/// Converts the SnCloudFileReference to a protobuf message
/// </summary>
/// <returns>The protobuf message representation of this object</returns>
public CloudFileReference ToProtoValue()
{
return new CloudFileReference
{
Id = Id.ToString(),
FileId = FileId,
File = File?.ToProtoValue(),
Usage = Usage,
ResourceId = ResourceId,
ExpiredAt = ExpiredAt?.ToTimestamp()
};
}
}

View File

@@ -6,6 +6,7 @@ namespace DysonNetwork.Shared.Models;
public class SnFileObject : ModelBase
{
[MaxLength(32)] public string Id { get; set; }
public Guid AccountId { get; set; }
public long Size { get; set; }