
Research
/Security News
9 Malicious NuGet Packages Deliver Time-Delayed Destructive Payloads
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.
gatsby-source-cloudinary
Advanced tools
Gatsby source plugin to fetch files from Cloudinary into Gatsby.
Pull data from your Cloudinary account into the Gatsby data layer with gatsby-source-cloudinary:
CloudinaryMedia node for each media file found based on your configuration.Use together with gatsby-transformer-cloudinary to:
CloudinaryMedia nodes.This is a community library supported by the Cloudinary Developer Experience team.
npm install gatsby-source-cloudinary
or
yarn add gatsby-source-cloudinary
Add gatsby-source-cloudinary to the plugin array in your gatsby-config.js file.
module.exports = {
plugins: [
{
resolve: `gatsby-source-cloudinary`,
options: {
cloudName: process.env.CLOUDINARY_CLOUD_NAME,
apiKey: process.env.CLOUDINARY_API_KEY,
apiSecret: process.env.CLOUDINARY_API_SECRET,
// resourceType: `image`,
// type: `twitter`,
// maxResults: 22,
// tags: true,
// context: true,
// prefix: `demo/animals`
},
},
],
};
process.env ⁉️ Read about env variables in the Gatsby docs.
import React from 'react';
import { graphql } from 'gatsby';
export default function BasicPage({ data }) {
return (
<main>
{data.allCloudinaryMedia.nodes.map((media, index) => (
<img key={index} width="200px" src={media.secure_url} />
))}
</main>
);
}
export const query = graphql`
query {
allCloudinaryMedia {
nodes {
secure_url # https version of the url
# url - http version of the url
}
}
}
`;
To add support for gatsby-plugin-image you'll need the gatsby-transformer-cloudinary plugin.
npm install gatsby-transformer-cloudinary gatsby-plugin-image
or
yarn add gatsby-transformer-cloudinary gatsby-plugin-image
// File: ./gatsby-config.js
module.exports = {
plugins: [
{
resolve: `gatsby-source-cloudinary`,
options: {
cloudName: process.env.CLOUDINARY_CLOUD_NAME,
apiKey: process.env.CLOUDINARY_API_KEY,
apiSecret: process.env.CLOUDINARY_API_SECRET,
// resourceType: `image`,
// type: `twitter`,
// maxResults: 22,
// tags: true,
// context: true,
// prefix: `demo/animals`
},
},
{
resolve: `gatsby-transformer-cloudinary`,
options: {
// Add the `gatsbyImageData` resolver to `CloudinaryMedia`
transformTypes: [`CloudinaryMedia`],
},
},
`gatsby-plugin-image`,
],
};
Check the gatsby-plugin-image docs and gatsby-transformer-cloudinary docs to learn more.
// File: ./pages/images.js
import React from 'react';
import { graphql } from 'gatsby';
import { GatsbyImage, getImage } from 'gatsby-plugin-image';
export default function GasbyImagePage({ data }) {
return (
<main>
{data.allCloudinaryMedia.nodes.map((media, index) => {
const image = getImage(media);
return <GatsbyImage key={index} image={image} />;
})}
</main>
);
}
export const query = graphql`
query {
allCloudinaryMedia {
nodes {
gatsbyImageData(width: 300, placeholder: BLURRED)
}
}
}
`;
cloudName (required)You'll find your Cloudinary account's cloudName in your Cloudinary console.
Type: String
Default: n/a
Note: Store and retrieve your cloudName as an environment variable.
apiKey (required)The API Key of your Cloudinary account. You'll find it in your Cloudinary console.
Type: String
Default: n/a
Note: Store and retrieve your apiKey as an environment variable.
apiSecret (required)The API Secret of your Cloudinary account. You'll find it in your Cloudinary console.
Type: String
Default: n/a
Note: Store and retrieve your apiSecret as an environment variable.
resourceTypeThe resource types to include when pulling data from Cloudinary.
Type: String
Default: image
Valid: image, raw and video
Note: Use the video resourceType for all video and audio files, such as .mp3 and .mp4.
typeThe storage types to include when pulling data from your Cloudinary account.
Type: String
Default: n/a
Valid: upload, private, authenticated, facebook, twitter, gplus, instagram_name, gravatar, youtube, hulu, vimeo, animoto, worldstarhiphop and dailymotion
Note: When not given, all types are sourced.
maxResultsMax number of resources to return.
Type: Integer
Default: 10
tagsWhen true, includes the list of tag names assigned to each resource.
Type: Boolean
Default: false
prefixFind all resources with a public ID that starts with the given prefix sorted by public ID in the response.
Type: String
Default: n/a
Note: Can be used to source only media files from a specific folder. However, you will need to specify both type and resourceType in the config options.
contextWhen true, includes the context data assigned to each resource. Helpful in retrieving alt text or custom metadata configured for the media file in Cloudinary.
Type: Boolean
Default: n/a
secureDistributionThe custom domain name (CNAME) to use for building secure URLs (https).
Relevant only for users on the Advanced plan or higher that have a custom CNAME. For details, see Private CDNs and CNAMEs.
Type: String
Default: n/a
cnameThe custom domain name (CNAME) to use for building non-secure URLs (http).
Relevant only for users on the Advanced plan or higher that have a custom CNAME. For details, see Private CDNs and CNAMEs.
Type: String
Default: n/a
privateCdnRelevant only for users on the Advanced plan or higher that have private CDN distribution. For details, see Private CDNs and CNAMEs.
Type: Boolean
Default: false
f_auto and q_auto Cloudinary transformations are applied automatically to the secure_url and url value optimizing the delivered media quality and format.gatsby-transformer-cloudinary the secureDistribution, cname and privateCdn options do not carry over, and there is no way to set them in that plugin.
You may improve the documentation, help fellow users, report bugs, suggest enhancements, contribute code and more.
Get started by reading the contribution docs.
FAQs
Gatsby source plugin to fetch files from Cloudinary into Gatsby.
The npm package gatsby-source-cloudinary receives a total of 408 weekly downloads. As such, gatsby-source-cloudinary popularity was classified as not popular.
We found that gatsby-source-cloudinary demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.