Skip to content

🗜️ Refine Appwrite Storage with bzip2 Compression #3996

@christyjacob4

Description

@christyjacob4

💭 Introduction

Appwrite Storage lets you upload and store images, videos, or any kind of file. One of its features is compression which lets you pick an algorithm that makes your files take less storage space. We currently support gzip and ZStandard compressions but aim to support more! ✨

Every compression algorithm is based on the Utopia PHP storage compression adapter that implements simple methods such as compress() and decompress().

Every file uploaded to Appwrite Storage needs to be stored somewhere, whether that is your server’s hard drive or cloud provider. To make this possible, Appwrite uses storage adapters that each implement simple methods compress() and decompress().

Your task is to implement support for bzip2 in Appwrite and the Utopia PHP storage library. To learn how a new adapter should look like, please check out some of our existing compression adapters. To learn how such an adapter can be added into Appwrite, please look at how existing compression (for instance Gzip) is being added. Make sure you understand existing examples before working on this issue.

🎯 Requirements

  • Experience with Appwrite.
  • Experience with PHP.
  • Experience with bzip2 compression.
  • Experience with Docker and Docker Compose.

✅ Task Summary

  • Ask to be assigned to the issue.
  • Wait to be assigned.
  • Implement Utopia PHP storage compression adapter for bzip2.
  • Submit a pull request in utopia-php/storage.
  • Implement Appwrite support for bzip2.
  • Submit a pull request in appwrite/appwrite.

If you have questions, need any help, or just want to hang out, make sure to join us on our Discord server.

Happy Appwriting!

Metadata

Metadata

Labels

good first issueGood for newcomershacktoberfestIssues that can win you some cool swags!product / storageFixes and upgrades for the Appwrite Storage.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions