GitHub - laosb/ghos3: A modernized AWS S3 storage adapter for Ghost. · GitHub
https://github.com/laosb/ghos3 • 270 KB fetched Open original page
GitHub - laosb/ghos3: A modernized AWS S3 storage adapter for Ghost. · GitHub
Skip to content
Navigation Menu
Sign in Appearance settings
* Platform
* AI CODE CREATION
* GitHub Copilot Write better code with AI
* GitHub Copilot app Direct agents from issue to merge
* MCP Registry Integrate external tools
* DEVELOPER WORKFLOWS
* Actions Automate any workflow
* Codespaces Instant dev environments
* Issues Plan and track work
* Code Review Manage code changes
* Code Quality Enforce quality at merge
* APPLICATION SECURITY
* GitHub Advanced Security Find and fix vulnerabilities
* Code security Secure your code as you build
* Secret protection Stop leaks before they start
* EXPLORE
* Why GitHub
* Documentation
* Blog
* Changelog
* Marketplace
View all features
* Solutions
* BY COMPANY SIZE
* Enterprises
* Small and medium teams
* Startups
* Nonprofits
* BY USE CASE
* App Modernization
* DevSecOps
* DevOps
* CI/CD
* View all use cases
* BY INDUSTRY
* Healthcare
* Financial services
* Manufacturing
* Government
* View all industries
View all solutions
* Resources
* EXPLORE BY TOPIC
* AI
* Software Development
* DevOps
* Security
* View all topics
* EXPLORE BY TYPE
* Customer stories
* Events & webinars
* Ebooks & reports
* Business insights
* GitHub Skills
* SUPPORT & SERVICES
* Documentation
* Customer support
* Community forum
* Trust center
* Partners
View all resources
* Open Source
* COMMUNITY
* GitHub Sponsors Fund open source developers
* PROGRAMS
* Security Lab
* Maintainer Community
* GitHub Stars
* Archive Program
* REPOSITORIES
* Topics
* Trending
* Collections
* Enterprise
* ENTERPRISE SOLUTIONS
* Enterprise platform AI-powered developer platform
* AVAILABLE ADD-ONS
* GitHub Advanced Security Enterprise-grade security features
* Copilot for Business Enterprise-grade AI features
* Premium Support Enterprise-grade 24/7 support
* Pricing
Search /
Sign in
Sign up Appearance settings
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
laosb
/
ghos3
Public
*
Uh oh!
There was an error while loading. Please reload this page .
*
Notifications
You must be signed in to change notification settings
*
Fork
16
*
Star
55
*
Code
*
Issues
4
*
Pull requests
1
*
Actions
*
Projects
*
Security and quality
0
*
Insights
Additional navigation options
*
Code
*
Issues
*
Pull requests
*
Actions
*
Projects
*
Security and quality
*
Insights
main
Branches Tags
Go to file
Code Open more actions menu
Latest commit
History
33 Commits
33 Commits
Folders and files
Name Name Last commit message
Last commit date
.github
.github
src
src
.gitignore
.gitignore
.prettierrc
.prettierrc
LICENSE.md
LICENSE.md
README.md
README.md
package.json
package.json
pnpm-lock.yaml
pnpm-lock.yaml
View all files
Repository files navigation
*
* README
* License
More items
GhoS3
An AWS S3 storage adapter tested on Ghost 5.x.
This is a modernized version based on colinmeinke/ghost-storage-adapter-s3 . Major changes are:
* Adopted async / await
* Rewritten in TypeScript
* Use latest Version 3 of AWS SDK
It's designed to be a drop-in replacement of colinmeinke's package, so configuration and installation method remained largely the same.
However, this port pretty much targets only Ghost 5.x and up, as the build toolchain is set to target Node 16.x. With some modifications this should work for older version of Ghost (PRs welcomed).
On my blog The Base , I use Cloudflare R2 with GhoS3.
Installation
# Install ghos3 package
npm install ghos3
# Create directory to storage adapter
mkdir -p ./content/adapters/storage
# Copy package files to s3 storage folder
cp -r ./node_modules/ghos3/ * ./content/adapters/storage/s3
# Remove unnecessary files generated from ghos3 installation
rm -Rf node_modules package-lock.json package.json
# Move to s3 storage folder
cd ./content/adapters/storage/s3
# Resolve dependencies
npm install
Configuration
Largely the same, but note signatureVersion and serverSideEncryption are removed since in AWS SDK v3 they're implemented differently than just a simple string field (PRs welcomed, of course).
"storage" : {
"active" : " s3 " ,
"media" :{
"adapter" : " s3 "
},
"files" : {
"adapter" : " s3 "
},
"s3" : {
"accessKeyId" : " YOUR_ACCESS_KEY_ID " ,
"secretAccessKey" : " YOUR_SECRET_ACCESS_KEY " ,
"region" : " YOUR_REGION_SLUG " ,
"bucket" : " YOUR_BUCKET_NAME " ,
"assetHost" : " YOUR_OPTIONAL_CDN_URL (See note 1 below) " ,
"pathPrefix" : " YOUR_OPTIONAL_BUCKET_SUBDIRECTORY " ,
"endpoint" : " YOUR_OPTIONAL_ENDPOINT_URL (only needed for 3rd party S3 providers) " ,
"forcePathStyle" : true ,
"acl" : " YOUR_OPTIONAL_ACL (See note 3 below) " ,
}
}
Notes
* Be sure to include // or the appropriate protocol within your assetHost string/variable to ensure that your site's domain is not prepended to the CDN URL.
* If your S3 provider requires path style, you can enable it with forcePathStyle .
* If you use CloudFront the object ACL does not need to be set to public-read .
Via environment variables
AWS_DEFAULT_REGION
AWS_ACCESS_KEY_ID // optional
AWS_SECRET_ACCESS_KEY // optional
GHOST_STORAGE_ADAPTER_S3_PATH_BUCKET
GHOST_STORAGE_ADAPTER_S3_ASSET_HOST // optional
GHOST_STORAGE_ADAPTER_S3_PATH_PREFIX // optional
GHOST_STORAGE_ADAPTER_S3_ENDPOINT // optional
GHOST_STORAGE_ADAPTER_S3_FORCE_PATH_STYLE // optional
GHOST_STORAGE_ADAPTER_S3_ACL // optional
For configuration on the AWS side, colinmeinke's original README has a detailed tutorial to set your up.
License
ISC
About
A modernized AWS S3 storage adapter for Ghost.
Topics
ghost ghost-storage ghost-storage-adapter
Resources
Readme
License
Activity
Stars
55 stars
Watchers
4 watching
Forks
16 forks
Report repository
Releases
Sponsor this project
Packages
Used by
Contributors
Languages
Footer
(c) 2026 GitHub, Inc.
Footer navigation
*
Terms
*
Privacy
*
Security
*
Status
*
Community
*
Docs
*
Contact
*
Manage cookies
*
Do not share my personal information
You can’t perform that action at this time.
Links found on this page
- Skip to content [direct]
- Sign in [direct]
- GitHub Copilot Write better code with AI [direct]
- GitHub Copilot app Direct agents from issue to merge [direct]
- MCP Registry Integrate external tools [direct]
- Actions Automate any workflow [direct]
- Codespaces Instant dev environments [direct]
- Issues Plan and track work [direct]
- Code Review Manage code changes [direct]
- Code Quality Enforce quality at merge [direct]
- GitHub Advanced Security Find and fix vulnerabilities [direct]
- Code security Secure your code as you build [direct]
- Secret protection Stop leaks before they start [direct]
- Why GitHub [direct]
- Documentation [direct]
- Blog [direct]
- Changelog [direct]
- Marketplace [direct]
- View all features [direct]
- Enterprises [direct]
- Small and medium teams [direct]
- Startups [direct]
- Nonprofits [direct]
- App Modernization [direct]
- DevSecOps [direct]
- DevOps [direct]
- CI/CD [direct]
- View all use cases [direct]
- Healthcare [direct]
- Financial services [direct]
- Manufacturing [direct]
- Government [direct]
- View all industries [direct]
- View all solutions [direct]
- AI [direct]
- Software Development [direct]
- DevOps [direct]
- Security [direct]
- View all topics [direct]
- Customer stories [direct]
- Events & webinars [direct]
- Ebooks & reports [direct]
- Business insights [direct]
- GitHub Skills [direct]
- Customer support [direct]
- Community forum [direct]
- Trust center [direct]
- Partners [direct]
- View all resources [direct]
- GitHub Sponsors Fund open source developers [direct]
- Security Lab [direct]
- Maintainer Community [direct]
- GitHub Stars [direct]
- Archive Program [direct]
- Topics [direct]
- Trending [direct]
- Collections [direct]
- Copilot for Business Enterprise-grade AI features [direct]
- Premium Support Enterprise-grade 24/7 support [direct]
- Pricing [direct]
- Sign up [direct]
- laosb [direct]
- Notifications [direct]
- Issues
4 [direct]
- Pull requests
1 [direct]
- Actions [direct]
- Projects [direct]
- Security and quality
0 [direct]
- Insights [direct]
- Branches [direct]
- Tags [direct]
- 33 Commits [direct]
- .github [direct]
- src [direct]
- .gitignore [direct]
- .prettierrc [direct]
- LICENSE.md [direct]
- README.md [direct]
- package.json [direct]
- pnpm-lock.yaml [direct]
|
|