Optimize ContentUploader to only upload new or changed articles #4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The ContentUploader was previously uploading all articles on every run, regardless of whether the content had changed. This resulted in unnecessary Azure Table Storage operations and inefficient processing.
Changes Made
1. Added Change Detection Infrastructure
ContentHashfield toContentEntityto store SHA256 hash of article contentCalculateContentHash()method that creates a hash from all content fields (title, category, tags, difficulty, author, description, content)GetExistingContent()method to safely retrieve existing content from Azure Table Storage2. Enhanced Upload Logic
Modified
UploadToTableStorage()to:3. Improved Console Output
Program.csExample Behavior
Before:
Every file uploaded regardless of changes.
After:
Only new or changed content is uploaded.
Testing
This optimization significantly reduces Azure Storage operations and improves processing efficiency when running bulk content uploads.
Fixes #3.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.