⚗️ 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

@@ -25,7 +25,6 @@ public partial class PostService(
ICacheService cache,
ILogger<PostService> logger,
FileService.FileServiceClient files,
FileReferenceService.FileReferenceServiceClient fileRefs,
Publisher.PublisherService ps,
RemoteWebReaderService reader,
AccountService.AccountServiceClient accounts,
@@ -194,18 +193,6 @@ public partial class PostService(
db.Posts.Add(post);
await db.SaveChangesAsync();
// Create file references for each attachment
if (post.Attachments.Count != 0)
{
var request = new CreateReferenceBatchRequest
{
Usage = PostFileUsageIdentifier,
ResourceId = post.ResourceIdentifier,
};
request.FilesId.AddRange(post.Attachments.Select(a => a.Id));
await fileRefs.CreateReferenceBatchAsync(request);
}
if (post.PublishedAt is not null && post.PublishedAt.Value.ToDateTimeUtc() <= DateTime.UtcNow)
_ = Task.Run(async () =>
{
@@ -306,17 +293,6 @@ public partial class PostService(
if (attachments is not null)
{
var postResourceId = $"post:{post.Id}";
// Update resource references using the new file list
var request = new UpdateResourceFilesRequest
{
ResourceId = postResourceId,
Usage = PostFileUsageIdentifier,
};
request.FileIds.AddRange(attachments);
await fileRefs.UpdateResourceFilesAsync(request);
// Update post attachments by getting files from database
var queryRequest = new GetFileBatchRequest();
queryRequest.Ids.AddRange(attachments);
@@ -475,11 +451,6 @@ public partial class PostService(
public async Task DeletePostAsync(SnPost post)
{
// Delete all file references for this post
await fileRefs.DeleteResourceReferencesAsync(
new DeleteResourceReferencesRequest { ResourceId = post.ResourceIdentifier }
);
var now = SystemClock.Instance.GetCurrentInstant();
await using var transaction = await db.Database.BeginTransactionAsync();
try

View File

@@ -19,7 +19,6 @@ public class PublisherController(
PublisherService ps,
AccountService.AccountServiceClient accounts,
FileService.FileServiceClient files,
FileReferenceService.FileReferenceServiceClient fileRefs,
ActionLogService.ActionLogServiceClient als,
RemoteRealmService remoteRealmService,
IServiceScopeFactory factory
@@ -569,25 +568,7 @@ public class PublisherController(
);
var picture = SnCloudFileReferenceObject.FromProtoValue(queryResult);
// Remove old references for the publisher picture
if (publisher.Picture is not null)
await fileRefs.DeleteResourceReferencesAsync(
new DeleteResourceReferencesRequest
{
ResourceId = publisher.ResourceIdentifier,
}
);
publisher.Picture = picture;
await fileRefs.CreateReferenceAsync(
new CreateReferenceRequest
{
FileId = picture.Id,
Usage = "publisher.picture",
ResourceId = publisher.ResourceIdentifier,
}
);
}
if (request.BackgroundId is not null)
@@ -601,27 +582,7 @@ public class PublisherController(
);
var background = SnCloudFileReferenceObject.FromProtoValue(queryResult);
// Remove old references for the publisher background
if (publisher.Background is not null)
{
await fileRefs.DeleteResourceReferencesAsync(
new DeleteResourceReferencesRequest
{
ResourceId = publisher.ResourceIdentifier,
}
);
}
publisher.Background = background;
await fileRefs.CreateReferenceAsync(
new CreateReferenceRequest
{
FileId = background.Id,
Usage = "publisher.background",
ResourceId = publisher.ResourceIdentifier,
}
);
}
db.Update(publisher);
@@ -717,11 +678,6 @@ public class PublisherController(
var publisherResourceId = $"publisher:{publisher.Id}";
// Delete all file references for this publisher
await fileRefs.DeleteResourceReferencesAsync(
new DeleteResourceReferencesRequest { ResourceId = publisherResourceId }
);
db.Publishers.Remove(publisher);
await db.SaveChangesAsync();

View File

@@ -22,7 +22,6 @@ public class FediverseStatus
public class PublisherService(
AppDatabase db,
FileReferenceService.FileReferenceServiceClient fileRefs,
SocialCreditService.SocialCreditServiceClient socialCredits,
ExperienceService.ExperienceServiceClient experiences,
ICacheService cache,
@@ -210,30 +209,6 @@ public class PublisherService(
db.Publishers.Add(publisher);
await db.SaveChangesAsync();
if (publisher.Picture is not null)
{
await fileRefs.CreateReferenceAsync(
new CreateReferenceRequest
{
FileId = publisher.Picture.Id,
Usage = "publisher.picture",
ResourceId = publisher.ResourceIdentifier,
}
);
}
if (publisher.Background is not null)
{
await fileRefs.CreateReferenceAsync(
new CreateReferenceRequest
{
FileId = publisher.Background.Id,
Usage = "publisher.background",
ResourceId = publisher.ResourceIdentifier,
}
);
}
return publisher;
}
@@ -270,30 +245,6 @@ public class PublisherService(
db.Publishers.Add(publisher);
await db.SaveChangesAsync();
if (publisher.Picture is not null)
{
await fileRefs.CreateReferenceAsync(
new CreateReferenceRequest
{
FileId = publisher.Picture.Id,
Usage = "publisher.picture",
ResourceId = publisher.ResourceIdentifier,
}
);
}
if (publisher.Background is not null)
{
await fileRefs.CreateReferenceAsync(
new CreateReferenceRequest
{
FileId = publisher.Background.Id,
Usage = "publisher.background",
ResourceId = publisher.ResourceIdentifier,
}
);
}
return publisher;
}