Telegraph-Image là một công cụ cho phép người dùng dễ dàng tải ảnh lên và lưu trữ trên Telegra.ph, một nền tảng blog đơn giản của Telegram. Công cụ này thường được sử dụng để tạo nhanh các liên kết hình ảnh có thể chia sẻ mà không cần đăng nhập, thích hợp cho việc nhúng ảnh vào các trang web, blog, hoặc kênh Telegram.
Nhân dịp Telegram vừa đóng cửa tính năng upload trên Telegraph, phải đổi sang dùng hình thức upload lên Telegram channel, dù các bước cài đặt tác giả viết cụ thể rồi, nhưng nó khá dễ quên, tiện thể lúc cài lại viết lại thành 1 bài để còn nhớ các bước 🏌️♂️
1. Tạo D1 SQL Database
- Workers & Pages -> D1 SQL Database -> Create
Đặt 1 tên tùy ý, ví dụ img-bibica-net
- Copy nội dung bên dưới vào Console để tạo các tables
DROP TABLE IF EXISTS tgimglog; CREATE TABLE IF NOT EXISTS tgimglog ( `id` integer PRIMARY KEY NOT NULL, `url` text, `referer` text, `ip` varchar(255), `time` DATE ); DROP TABLE IF EXISTS imginfo; CREATE TABLE IF NOT EXISTS imginfo ( `id` integer PRIMARY KEY NOT NULL, `url` text, `referer` text, `ip` varchar(255), `rating` text, `total` integer, `time` DATE );
2. Tạo channel Telegram
- Tạo bot theo hướng dẫn tại đây
- Tạo 1 channel tùy ý, add bot vào channel
- Chat với
@username_to_id_bot
để lấy ID của channel
Xong xuôi sẽ có thông tin tương tự như bên dưới
TG_BOT_TOKEN 6360723418:AAE-xxxxxxxxxxxxxxxx_xOtis5hQg TG_CHAT_ID -1002411xxxxxxx
3. Triển khai lên Cloudflare Pages
Tạo 1 new fork từ repository của tác giả tại đây, nếu thích dùng bản giống thèng img.bibica.net đang dùng thì tại đây (như nhau cả, mình chỉ dịch vài câu sang tiếng Việt thôi)
-
Cloudflare Pages
->Create a project
>Connect to Git
, chọn gits vừa fork về tài khoản Github của bạn - Tại Set up builds and deployments
Framework preset
chọnNext.js
- Setting -> Functions -> Compatibility flags
Thêm vào nodejs_compat
ở Production compatibility flags và Preview compatibility flags
Kéo tiếp xuống dưới tới phần D1 database bindings
- Variable name:
IMG
- D1 database: dùng database tạo ra ở bước 1
Sang tab Environment variables, thêm vào các giá trị
-
BASIC_USER
: nick để login quản trị (đặt tùy thích) -
BASIC_PASS
: password để login quản trị (đặt tùy thích) -
TG_BOT_TOKEN
: thông tin tạo ra ở bước 2 -
TG_CHAT_ID
: thông tin tạo ra ở bước 2
Xong xuôi thì quay lại Deployments để Building and deploying lại, có thể chọn thủ công hoặc có thể edit bất cứ file nào tại Github, sẽ tự động Building and deploying lại
Từ lúc này trở đi, mỗi khi ai upload gì vào là nó sẽ được tống lên channel Telegram
Link quản trị, có thể vào để xóa các ảnh là /login
hoặc /admin
4. Hiệu quả?
- Nếu chạy qua Cloudflare Pages bị giới hạn chỉ cho upload các file 100 MB, channel Telegram giới hạn upload file qua bot là 50 MB -> kích thước mỗi tệp tải lên tối đa 50 MB
- Trong 1 phút cho phép gửi 20 tin nhắn , trong trường hợp upload 1 lúc 100 file, sẽ có đôi lúc thấy thông báo upload không thành công, vì bị giới hạn 20 tin nhắn trong 1 phút 😀 các file upload không thành công vẫn nằm trong thư mục upload, chỉ cần ấn upload lại là xong, cũng không tệ
Tạm chưa lấy lỗi gì phát sinh, ảnh upload lên dù bị nén lại 1 chút, nhìn ổn, không thấy khác biệt lắm
Upload lên kênh, có thể upload video, file các kiểu tẹt ga, mình thử đưa link video này vào WordPress, thấy load ầm ầm như đúng rồi luôn
Chính sách bình luận: Chúng tôi rất trân trọng các bình luận của bạn và cảm ơn thời gian bạn dành để chia sẻ ý tưởng và phản hồi.
Ghi chú: Những bình luận được xác định là spam hoặc chỉ mang tính quảng cáo sẽ bị xóa.
• Để cải thiện trải nghiệm bình luận, chúng tôi khuyến khích bạn tạo một tài khoản Gravatar. Thêm avatar vào tài khoản Gravatar sẽ giúp bình luận của bạn dễ nhận diện hơn đối với các thành viên khác.
• ✂️ Sao chép và 📋 Dán Emoji 💪 giúp bình luận thêm sinh động và thú vị!