TinyPNG uses smart lossy compression techniques to reduce the file size of your PNG files. By selectively decreasing the number of colors in the image, fewer bytes are required to store the data. The effect is nearly invisible but it makes a very large difference in file size! Join over 50.000 companies and developers around the world who are using the API.
Add or update a single record in your Pipedream Data Store.
Add or update multiple records to your Pipedream Data Store.
Append to a record in your data store Pipedream Data Store. If the record does not exist, a new record will be created in an array format.
Check if a key exists in your Pipedream Data Store or create one if it doesn't exist.
The TinyPNG API lets you compress and optimize image files efficiently. With this API, you can shrink the size of PNG and JPEG files without a noticeable loss in quality, making it a crucial tool for improving website load times and saving bandwidth. On Pipedream, you can automate image optimization workflows, harnessing the power of TinyPNG to process batches of images, integrate with CMS platforms, trigger optimizations from various events, and more.
module.exports = defineComponent({
props: {
tinypng: {
type: "app",
app: "tinypng",
}
},
async run({steps, $}) {
const results = await require("@pipedream/platform").axios($, {
method: "post",
url: `https://api.tinify.com/shrink`,
auth: {
username: `api:${this.tinypng.$auth.api_key}`,
password: ``,
},
data: {
"source": {
"url": "https://tinypng.com/images/panda-happy.png"
}
},
})
const retVal = results.output
retVal.original_image_metadata = results.input
return retVal
},
})
Data Stores are a key-value store that allow you to persist state and share data across workflows. You can perform CRUD operations, enabling dynamic data management within your serverless architecture. Use it to save results from API calls, user inputs, or interim data; then read, update, or enrich this data in subsequent steps or workflows. Data Stores simplify stateful logic and cross-workflow communication, making them ideal for tracking process statuses, aggregating metrics, or serving as a simple configuration store.
export default defineComponent({
props: {
myDataStore: {
type: "data_store",
},
},
async run({ steps, $ }) {
await this.myDataStore.set("key_here","Any serializable JSON as the value")
return await this.myDataStore.get("key_here")
},
})