mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-20 22:42:53 -05:00
Made storage calls related to images use "images" feature
refs https://linear.app/tryghost/issue/CORE-1/multiple-adapters-per-type - Having this preemptive change allows to separate implementation of "image" storage from future usecases like "videos", "audios" etc. Even if the "image" adapter is not configured the default behavior will fallback to use the "active" storage adapter. If there's a need to handle "images" differently through a custom apapter that'll work out of the box ;)
This commit is contained in:
parent
f890d8d4cd
commit
07afb08875
10 changed files with 12 additions and 11 deletions
|
@ -7,7 +7,7 @@ module.exports = {
|
|||
statusCode: 201,
|
||||
permissions: false,
|
||||
query(frame) {
|
||||
const store = storage.getStorage();
|
||||
const store = storage.getStorage('images');
|
||||
|
||||
if (frame.files) {
|
||||
return Promise
|
||||
|
|
|
@ -7,7 +7,7 @@ module.exports = {
|
|||
statusCode: 201,
|
||||
permissions: false,
|
||||
query(frame) {
|
||||
const store = storage.getStorage();
|
||||
const store = storage.getStorage('images');
|
||||
|
||||
if (frame.files) {
|
||||
return Promise
|
||||
|
|
|
@ -7,7 +7,7 @@ module.exports = {
|
|||
statusCode: 201,
|
||||
permissions: false,
|
||||
query(frame) {
|
||||
const store = storage.getStorage();
|
||||
const store = storage.getStorage('images');
|
||||
|
||||
if (frame.files) {
|
||||
return Promise
|
||||
|
|
|
@ -13,7 +13,7 @@ ImageHandler = {
|
|||
directories: ['images', 'content'],
|
||||
|
||||
loadFile: function (files, baseDir) {
|
||||
const store = storage.getStorage();
|
||||
const store = storage.getStorage('images');
|
||||
const baseDirRegex = baseDir ? new RegExp('^' + baseDir + '/') : new RegExp('');
|
||||
|
||||
const imageFolderRegexes = _.map(urlUtils.STATIC_IMAGE_URL_PREFIX.split('/'), function (dir) {
|
||||
|
|
|
@ -64,7 +64,7 @@ ImageImporter = {
|
|||
return importData;
|
||||
},
|
||||
doImport: function (imageData) {
|
||||
const store = storage.getStorage();
|
||||
const store = storage.getStorage('images');
|
||||
|
||||
return Promise.map(imageData, function (image) {
|
||||
return store.save(image, image.targetDir).then(function (result) {
|
||||
|
|
|
@ -216,7 +216,7 @@ class ImageSize {
|
|||
// get the storage readable filePath
|
||||
filePath = this.storageUtils.getLocalFileStoragePath(imagePath);
|
||||
|
||||
return this.storage.getStorage()
|
||||
return this.storage.getStorage('images')
|
||||
.read({path: filePath})
|
||||
.then((buf) => {
|
||||
debug('Image fetched (storage):', filePath);
|
||||
|
@ -267,7 +267,7 @@ class ImageSize {
|
|||
}
|
||||
|
||||
const originalImagePath = path.join(dir, `${imageName}_o${imageNumber || ''}${ext}`);
|
||||
const originalImageExists = await this.storage.getStorage().exists(originalImagePath);
|
||||
const originalImageExists = await this.storage.getStorage('images').exists(originalImagePath);
|
||||
|
||||
return this.getImageSizeFromStoragePath(originalImageExists ? originalImagePath : imagePath);
|
||||
}
|
||||
|
|
|
@ -36,9 +36,10 @@ module.exports = {
|
|||
canTransformImage(storagePath) {
|
||||
const {ext} = path.parse(storagePath);
|
||||
|
||||
// NOTE: the "saveRaw" check is smelly
|
||||
return imageTransform.canTransformFiles()
|
||||
&& imageTransform.canTransformFileExtension(ext)
|
||||
&& typeof storage.getStorage().saveRaw === 'function';
|
||||
&& typeof storage.getStorage('images').saveRaw === 'function';
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -107,7 +107,7 @@ module.exports = function setupSiteApp(options = {}) {
|
|||
siteApp.use(mw.servePublicFile('public/ghost.min.css', 'text/css', constants.ONE_YEAR_S));
|
||||
|
||||
// Serve blog images using the storage adapter
|
||||
siteApp.use(STATIC_IMAGE_URL_PREFIX, mw.handleImageSizes, storage.getStorage().serve());
|
||||
siteApp.use(STATIC_IMAGE_URL_PREFIX, mw.handleImageSizes, storage.getStorage('images').serve());
|
||||
|
||||
// @TODO find this a better home
|
||||
// We do this here, at the top level, because helpers require so much stuff.
|
||||
|
|
|
@ -63,7 +63,7 @@ module.exports = function (req, res, next) {
|
|||
return redirectToOriginal();
|
||||
}
|
||||
|
||||
const storageInstance = storage.getStorage();
|
||||
const storageInstance = storage.getStorage('images');
|
||||
// CASE: unsupported storage adapter
|
||||
if (typeof storageInstance.saveRaw !== 'function') {
|
||||
return redirectToOriginal();
|
||||
|
|
|
@ -49,7 +49,7 @@ function serveFavicon() {
|
|||
return res.redirect(302, urlUtils.urlFor({relativeUrl: `/favicon${originalExtension}`}));
|
||||
}
|
||||
|
||||
storage.getStorage()
|
||||
storage.getStorage('images')
|
||||
.read({path: filePath})
|
||||
.then((buf) => {
|
||||
iconType = blogIcon.getIconType();
|
||||
|
|
Loading…
Add table
Reference in a new issue