Loading...
Laravel Cloudinary Clone API PRO - giải pháp thay thế API upload ảnh Cloudinary

Laravel Cloudinary Clone API PRO - giải pháp thay thế API upload ảnh Cloudinary

27-01-2025 15:16:53
0
0
1,750,000đ
3,000,000 đ
-42%
Laravel Cloudinary Clone API bản PRO, nâng cấp một số tính năng, xử lý một số phần còn giới hạn ở bản thường. (Bản PRO bao gồm cả phiên bản thường). Laravel Cloudinary Clone API là giải pháp lý tưởng để tối ưu và quản lý hình ảnh một cách dễ dàng, khả năng chuyển đổi hình ảnh linh hoạt.

Bạn đang tìm kiếm một giải pháp lưu trữ hình ảnh hiệu quả, tối ưu cho hosting với chi phí thấp? Bạn mệt mỏi vì hình ảnh tải chậm, ảnh hưởng đến hiệu suất website? Chi phí cho dịch vụ lưu trữ và xử lý ảnh bên ngoài quá cao?

27012025151534api laravel cloudinary cloned pro.jpg

Chi phí chỉ cần cho 1 lần mua source code + chi phí cho hosting >>> tốt hơn rất nhiều khi thanh toán cho service thứ 3.

Bản PRO (nâng cấp) có gì khác bản thường?

Bạn có thể xem bản thường tại đây: https://vinhweb.com/product/laravel-cloudinary-clone-api

Bản PRO bao gồm cả bản thường (tự do transform).

Có một số nâng cấp cần thiết mà VinhWeb nhận thấy cần xử lý để hệ thống hosting, server quản lý hình ảnh hiệu quả hơn. Do đó mình đã dành thời gian để giải quyết những phần nhận thấy này, phát triển + deploy + testing đều đã ổn cả.

Tóm tắt: bản api upload image cloudinary clone thường hoạt động rất giống cloudinary api, nhưng gây tạo ra rất nhiều file ảnh, nếu có ai đó điều chỉnh path transformation_string, bản PRO này đã hạn chế việc đó.

Nguyên nhân cần nâng cấp

Một số phương án đặt ra khi tạo ra hình ảnh theo transformation string. (transformation_string dùng để tùy biến bất kỳ hình ảnh nào với kích thước, chất lượng ảnh, effect...)

Phương án 1: Lưu lại hình ảnh

Sẽ ra sao khi có quá nhiều file được tạo ra khi generate hình ảnh kiểu cloudinary.

Vì mỗi option sẽ tạo và lưu một file mới, ví dụ tùy chỉnh kích thước từ 0 - 1000px. Có khả năng tạo ra hàng nghìn ảnh, chưa kể đến việc việc tên file khác nhau như: jpg, webp, png... thì số lượng lại nhân lên. (có thể mình không dùng đến, nhưng sẽ ra sao nếu có attacker, có người muốn phá, điều này sẽ khá nguy hiểm)

Phương án 2: Nếu không lưu lại hình ảnh trên hosting, mà dựa vào lượt request để transform và send ảnh

Đây cũng là một phương án, nhưng nó không ổn vì nhiều ảnh transform một lúc sẽ làm hosting, server quá tải, không thể render gửi request kịp được.

Phương án 3: Tạo cache cho việc transform hình ảnh.

Điều này thì cũng khá giống với việc tạo ảnh. Không hiểu quả.

Giải pháp

1. Giới hạn việc transform size (width, height)

Mình giới hạn việc transform tự do thành những kích thước nhất định. Thay vì có thể thay đổi 0-1000px hoặc 0-3000px thì sẽ là:

private const SIZE_RANGES = [
'small' => ['min' => 0, 'max' => 100],
'compact' => ['min' => 101, 'max' => 160],
'medium' => ['min' => 161, 'max' => 240],
'large' => ['min' => 241, 'max' => 480],
'grande' => ['min' => 481, 'max' => 600],
'master' => ['min' => 601, 'max' => 1039],
];

Một cái size range nhất định, cộng với kích thước mặc định của ảnh.

Ví dụ như ảnh có kích thước mặc định là 2000px, ta vẫn sẽ có thể lưu ảnh đó, cộng với việc có thể transform theo các kích thước bên trên.

Việc transform giờ đây sẽ có một khoảng nhất định, ví dụ với w=0 > thì ảnh sẽ render ra thằng max = 100.

w=600 > lấy thằng max = 1039, vượt quá 1039 thì sẽ quay lại 1039.

Ngoài ra, ta có thể lấy name của nó như small, compact thay vì chỉ cho phép kiểu số.

2. Giới hạn việc transform quality, effect strength

Giới hạn bước nhảy, thay vì +1, thì sẽ là +10.

Như việc ta có quality chạy từ 0,1,2,3 đến 100 thì là 0, 10, 20 đến 100

Bước nhảy sẽ bằng tích của 10.

3. Có thể giới hạn các yếu tố transform nhanh, khi muốn giới hạn việc tự do quá mức

  1. Việc customize nhiều inputs khác nhau sẽ cho ra nhiều kết quả khác nhau và việc lưu
  2. Như giới hạn việc customize height, crop, hoặc quality.
private const DISABLED_FEATURES = [
'h',
'c',
'q',
];

private const DEFAULT_VALUES = [
'w' => 'w_auto', // Default width
'h' => 'h_auto', // Default height
'q' => 'q_90', // Default quality
'f' => 'f_jpg', // Default file type
'c' => 'c_auto', // Default crop type
'e' => 'e_none', // Default effect
];

4. Đặt default setting và thứ tự cho các transformation, để tránh việc tạo trùng ảnh.

- Như khi ta đặt w_100, thì sẽ có transformation_string là w_100,h_auto,q_auto,...

ví dụ: khi set thêm là w_100,h_auto ta vẫn sẽ lấy kết quả bên trên. thay vì tạo lại và thay đổi biến thể ở transformation_string.

- Hoặc thứ tự của transformation_string đều về một thứ tự nhất định, thay vì custom theo đường dẫn url.

ví dụ: input: q_auto,h_auto,w_auto, hay q_auto,w_auto,h_auto => sẽ có output là w_auto,h_auto,q_auto

--

Từ những việc giới hạn như vậy, ta đã giới hạn được việc transform tự do, giới hạn số lượng ảnh tạo ra không cần thiết, hạn chế việc quá nhiều, tăng dung lượng hosting, server.

Features

  1. Code được build trên nền Laravel, rất dễ để tùy chỉnh, xây dựng to lên.
  2. Sử dụng Intervension Image PHP để xử lý hình ảnh, giúp bạn thêm config dễ dàng. https://image.intervention.io/v3
  3. Tiết kiệm chi phí, chỉ cần mua hosting, ném lên là chạy được, giải pháp lữu trữ hình ảnh tiết kiệm.

Luồng xử lý

Luồng xử lý Laravel Cloudinary Clone API gần giống với Cloudinary.

  1. Tạo Project
  2. Trong mỗi Project tạo Upload Preset
  3. Mỗi Upload Preset, sẽ có thể cấu hình transformation_string, hình ảnh khi tải lên với upload_preset này, sẽ mặc định chuyển đổi dựa trên transformation_string này, và lưu trữ trong folder được cấu hình tại Upload Preset.
  4. Mỗi hình ảnh được serving, có load ra mặc định, hoặc có thể thay đổi dựa vào transformation_string trực tiếp thông qua URL.

Ưu điểm

Laravel Cloudinary Clone API của VinhWeb, được xây dựng với Laravel và Intervention Image, mang đến cho bạn khả năng:

Tiết kiệm chi phí đáng kể: So với việc sử dụng các dịch vụ lưu trữ hình ảnh bên ngoài như Cloudinary, bạn sẽ tiết kiệm được một khoản chi phí đáng kể khi sử dụng Laravel Cloudinary API. Bạn chỉ cần trả một lần duy nhất để sở hữu mã nguồn, mua hosting và tự do sử dụng.

Tối ưu hóa hiệu suất website: API tự động tối ưu hóa hình ảnh, giúp giảm kích thước tệp tin mà không làm giảm chất lượng, từ đó tăng tốc độ tải trang web và cải thiện thứ hạng SEO.

Nâng cao trải nghiệm người dùng: Hình ảnh chất lượng cao với kích thước phù hợp mang lại trải nghiệm người dùng tốt hơn, giúp tăng sự hài lòng và tỷ lệ chuyển đổi.

Linh hoạt và dễ sử dụng: API cung cấp nhiều tùy chọn chuyển đổi hình ảnh, bao gồm thay đổi kích thước, cắt xén, nén và hơn thế nữa. Bạn cũng có thể tùy chỉnh cài đặt tải lên trước để tự động tối ưu hình ảnh khi tải lên.

Tại sao lại build trên Laravel?

Việc xây dựng một bản sao Cloudinary trên Laravel mang lại nhiều lợi ích đáng kể, từ khả năng tùy chỉnh cao đến việc tận dụng sức mạnh của hệ sinh thái Laravel. Dưới đây là một số lý do chính:

1.Tính linh hoạt và khả năng tùy chỉnh:

  1. Laravel là một framework mã nguồn mở, cho phép bạn tùy chỉnh và mở rộng ứng dụng theo nhu cầu cụ thể của mình. Bạn có thể dễ dàng thêm các tính năng mới, tích hợp với các dịch vụ khác và điều chỉnh logic xử lý hình ảnh.
  2. Với Cloudinary, bạn bị giới hạn bởi các tính năng và tùy chọn do nền tảng cung cấp.

2. Tận dụng sức mạnh của Laravel:

  1. Laravel cung cấp một loạt các tính năng mạnh mẽ như routing, ORM (Eloquent), caching, queueing, và nhiều tính năng khác, giúp đơn giản hóa quá trình phát triển và bảo trì ứng dụng.
  2. Bạn có thể tận dụng hệ sinh thái Laravel phong phú với nhiều package và công cụ hỗ trợ, giúp tăng tốc độ phát triển và giảm thiểu lỗi.

3. Kiểm soát và sở hữu:

  1. Xây dựng một bản sao Cloudinary trên Laravel cho phép bạn kiểm soát hoàn toàn mã nguồn và dữ liệu của mình. Bạn không phải phụ thuộc vào một nhà cung cấp bên thứ ba và có thể tự do tùy chỉnh ứng dụng theo ý muốn.
  2. Điều này đặc biệt quan trọng đối với các ứng dụng yêu cầu tính bảo mật và riêng tư cao.

4. Tiết kiệm chi phí:

  1. Cloudinary có thể tốn kém, đặc biệt khi bạn cần xử lý một lượng lớn hình ảnh hoặc sử dụng các tính năng nâng cao.
  2. Xây dựng một giải pháp tự lưu trữ trên Laravel giúp bạn tiết kiệm chi phí đáng kể trong dài hạn.

5. Hiệu suất:

  1. Với Laravel, bạn có thể tối ưu hóa hiệu suất của ứng dụng bằng cách sử dụng các kỹ thuật caching, queueing và tối ưu hóa cơ sở dữ liệu.
  2. Bạn cũng có thể dễ dàng mở rộng ứng dụng để xử lý lượng truy cập lớn.

Installation

Yêu cầu: PHP 8.2 trở lên

Bên mình bàn giao source code, gửi thông tin hướng dẫn setup.

Ngoài ra, khi mua Source Code tại VinhWeb, bạn còn nhận được:

  1. Hỗ trợ kỹ thuật: Nhận được sự hỗ trợ tận tình từ VinhWeb để giải đáp mọi thắc mắc và vấn đề kỹ thuật.
  2. Cập nhật thường xuyên: Mã nguồn được cập nhật liên tục để cải thiện hiệu suất, bảo mật và bổ sung tính năng mới.

Thanh toán & Mua hàng

Bạn có thể mua hàng trực tiếp trên website hoặc thông qua Zalo của Vinh: 0979.788.685

Vui lòng chuyển khoản thanh toán theo mã QR dưới đây với nội dung: email + sđt + tên sản phẩm (Laravel Cloudinary Clone API)

Ví dụ: vinhnguyenhubt@gmail.com 0979788685 Laravel Cloudinary Clone API

VinhWeb sẽ xác nhận và chuyển sản phẩm tới bạn trong vòng 24 giờ.

18122024141030momo-new.jpg

Đừng chần chừ nữa! Đầu tư vào Laravel Cloudinary Clone API PRO - giải pháp thay thế API upload ảnh Cloudinary ngay hôm nay để trải nghiệm giải pháp lưu trữ và xử lý hình ảnh tối ưu nhất!



Tags sản phẩm:
Chia sẻ:

0 bình luận

Để lại bình luận

Thích bài viết? Nhận tin mới
Đừng quên share bài này

Sản phẩm liên quan

Tất cả
Top Zalo contact