Tài liệu API
API của YourImageShare giúp bạn tải lên, liệt kê và xóa file bằng code. Đây là một API JSON/REST nhỏ gọn - không cần SDK, chỉ cần một HTTP client và một khóa API - ngoài ra còn có thư viện JavaScript, Python và MCP chính thức.
Tất cả thư viện client và công cụ bên dưới đều là mã nguồn mở. Bạn có thể xem code, báo lỗi hoặc đóng góp trên kho GitHub chính thức của chúng tôi tại github.com/yourimageshare/yourimageshare.
Base URL: https://yourimageshare.com/api · Định dạng: JSON cho cả request và response, trừ việc tải lên dùng multipart/form-data · Xác thực: khóa API trong mọi request.
· Đặc tả cho máy đọc: /openapi.json (OpenAPI 3.1), dành cho agent và công cụ sinh code
không muốn phân tích trang này.
Lấy khóa API
Đăng nhập, vào Tài khoản của tôi và mở tab API. Khóa của bạn hiển thị ở đó, cùng với nút Tạo lại. Tạo lại khóa sẽ vô hiệu hóa khóa cũ ngay lập tức, vì vậy hãy cập nhật mọi nơi đang dùng khóa trước khi bấm.
Tab đó còn có một khóa chỉ tải lên thứ hai, độc lập - xem mẹo bên dưới và Plugin diễn đàn để biết khi nào nên dùng khóa này.
Xác thực
Hãy gửi khóa của bạn qua header - cách này được ưu tiên, vì query string thường bị ghi vào
log truy cập, log proxy và header Referer:
X-API-Key: YOUR_API_KEY
Tham số query ?key= cũng dùng được, được giữ lại để tương thích với
các tích hợp cũ và những lệnh curl chạy nhanh một lần. Nếu có cả hai,
header sẽ được ưu tiên.
?key=YOUR_API_KEY
Mẹo: Hãy coi khóa của bạn như mật khẩu - ai có nó đều có thể tải lên, liệt kê, thay đổi và xóa trên tài khoản của bạn. Mỗi request thành công đều được ghi lại và hiển thị dưới dạng biểu đồ trong tab API của trang tài khoản, chia theo ngày và theo loại request. Nếu khóa cần nằm ở nơi người khác có thể thấy - như plugin diễn đàn hoặc file cấu hình công khai - hãy dùng khóa chỉ tải lên trong cùng tab đó: khóa này chỉ có thể tải lên - việc liệt kê, tra cứu, thay đổi và xóa file đều bị từ chối với lỗi 401.
Endpoint
Tải lên, liệt kê và xóa dùng chung cơ chế xác thực và giới hạn tốc độ; file lớn có thể được gửi theo từng phần trước.
POST /api - Tải lên một file
Tải lên một file cho tài khoản đã xác thực.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
uploads | file | một trong ba trường này | File cần tải lên, tối đa 100MB (giới hạn cho một request qua mạng của chúng tôi). Mỗi request một file - endpoint này không tải lên hàng loạt nhiều file. |
url | string | Một link http(s) công khai tới ảnh hoặc video. Chúng tôi tự tải về, nên file tới 200MB đều dùng được. | |
upload_id | string | File đã được gửi theo từng phần tới POST /api/chunk trước đó, tối đa 200MB. | |
filename | string | không | Dùng cùng upload_id: tên file gốc. |
expires_in | integer | không | Tự động xóa file tải lên sau chừng này giây (từ 60 đến 31,536,000, tức 1 phút đến 1 năm). Bỏ qua nếu muốn tải lên bình thường, vĩnh viễn. |
allow_duplicate | boolean | không | Lưu một bản sao mới ngay cả khi tài khoản của bạn đã tải lên đúng file đó (xem duplicate bên dưới). |
keep_original | boolean | không | Giữ nguyên ảnh như khi tải lên. Nếu không dùng, file JPG/PNG trên 1 MB sẽ được tối ưu sang WebP. Metadata như GPS đều bị xóa trong cả hai trường hợp. |
visibility | string | không | unlisted (mặc định): file và trang của nó hoạt động với bất kỳ ai có link, nhưng không được liệt kê ở đâu cả. private: chỉ có file - link trang sẽ chuyển mọi người, trừ bạn, thẳng tới file (không có bình luận, reaction hay quảng cáo). public: được liệt kê trên trang và có thể được lập chỉ mục. |
title | string | không | Tối đa 90 ký tự, hiển thị trên trang của file tải lên. |
description | string | không | Tối đa 500 ký tự. |
Định dạng được chấp nhận: ảnh JPG, PNG, GIF, WEBP, AVIF, BMP, TIFF, HEIC hoặc HEIF; video MP4, WEBM hoặc AVI (danh sách chính xác có thể mở rộng theo thời gian). HEIC/HEIF và TIFF được lưu thành WebP, video không phải MP4/WebM được chuyển sang MP4, và ảnh JPEG/PNG lớn hơn được chuyển sang WebP ngay sau khi tải lên nếu việc đó giúp file nhỏ đi đáng kể. Dung lượng tối đa: 200MB; file quá lớn hoặc không đọc được sẽ bị từ chối với lỗi 422.
Phản hồi - 200 OK:
{
"type": "success",
"msg": "success",
"data": {
"id": "aB3xY9qRz1",
"type": "image",
"path": "https://i.yourimageshare.com/aB3xY9qRz1.png",
"src": "https://yourimageshare.com/ib/aB3xY9qRz1.png",
"direct": "https://yourimageshare.com/ib/aB3xY9qRz1",
"thumb": "https://i.yourimageshare.com/thumb-aB3xY9qRz1.webp",
"width": 1920,
"height": 1080,
"size": 482113,
"locked": false,
"visibility": "unlisted",
"title": null,
"description": null,
"expires_at": null,
"duplicate": false,
"delete_url": "https://yourimageshare.com/delete#iV3x...k9"
}
}
| Trường | Mô tả |
|---|---|
id | Mã định danh duy nhất của file. |
type | image hoặc video. |
path | URL lưu trữ của file như khi tải lên. URL này có thể thay đổi ngay sau đó khi file được chuyển đổi (WebP/MP4), vì vậy hãy lưu src, đừng lưu path. |
src | URL file trực tiếp vĩnh viễn - luôn mở file hiện tại, phù hợp để dùng làm src của <img>/<video> và để lưu lại. |
direct | Trang của file trên YourImageShare (tiêu đề, mô tả, bình luận, tùy chọn chia sẻ). |
thumb | Ảnh thu nhỏ WebP rộng 280px (với video là khung hình đầu tiên), hoặc null. |
width, height | Kích thước hiển thị tính bằng pixel (theo chiều đứng đúng; với video là kích thước khung hình), hoặc null nếu không xác định. |
size | Dung lượng file tính bằng byte như đã lưu. |
locked | true nếu file tải lên được bảo vệ bằng mật khẩu. |
visibility | private, unlisted hoặc public (xem trường request ở trên). |
title, description | Như đã đặt, hoặc null. Văn bản được kiểm duyệt giống như trên website. |
delete_url | Chỉ có với file mới tải lên: một link riêng để xóa file này mà không cần khóa API. Chỉ hiển thị một lần (chỉ lưu giá trị băm) - hãy giữ lại nếu bạn cần. |
expires_at | Mốc thời gian theo chuẩn ISO 8601 mà file tải lên sẽ tự động bị xóa, hoặc null nếu không hết hạn. |
duplicate | true nếu tài khoản của bạn đã tải lên đúng file đó: file đã có sẽ được trả về và không có gì mới được lưu. Không áp dụng cho file có hạn hoặc khi dùng allow_duplicate=1. |
File tải lên có hạn: khi expires_at trôi qua, file bị xóa khỏi bộ lưu trữ và trang của file bắt đầu
trả về 410 Gone trong khoảng 5 phút. Việc này không thể hoàn tác
hay gia hạn sau đó - hãy xóa sớm bằng endpoint DELETE nếu bạn cần gỡ nhanh hơn, hoặc
tải lên lại với expires_in mới nếu bạn cần giữ lâu hơn.
POST /api/chunk - File lớn
Một request chỉ chứa được tối đa 100MB. Với file lớn hơn (tới
200MB), hoặc để giữ mỗi request nhỏ khi kết nối
chậm, hãy gửi file theo từng phần tối đa 5MB, rồi kết thúc bằng POST /api:
- Chọn một upload id: 32 ký tự hex ngẫu nhiên.
- Với mỗi phần, gửi
POST /api/chunk(multipart/form-data) vớiupload_id,index(bắt đầu từ 0),total(số phần) và các byte trongchunk. Phản hồi là{"type": "success", "chunk_size": 5242880}. - Gửi
POST /apivớiupload_idvàfilenamethay chouploads, cùng các trường tải lên khác nếu có. Phản hồi là phản hồi tải lên thông thường.
Các phần của một lần tải lên chưa hoàn tất sẽ bị xóa sau 2 giờ. Chỉ POST /api cuối cùng được tính vào giới hạn tải lên.
GET /api/{id} và PATCH /api/{id} - Một file tải lên
GET trả về một file tải lên của bạn với các trường giống như danh sách bên dưới. PATCH thay đổi visibility, title hoặc description của file (qua trường form hoặc JSON; tiêu đề hoặc mô tả để trống sẽ xóa nội dung đó)
và trả về file đã cập nhật. Cả hai đều cần khóa API đầy đủ; trả về 404 nếu
tài khoản của bạn không có file đó.
curl -X PATCH https://yourimageshare.com/api/aB3xY9qRz1 \
-H "X-API-Key: YOUR_API_KEY" -d visibility=public -d title="Sunset"
POST /api/{id}/replace - Thay file
Đổi file nằm sau một lần tải lên của bạn nhưng giữ nguyên id, trang và mọi link. Mọi định dạng được phép đều dùng được, kể cả
định dạng khác (một ảnh có thể trở thành video). Gửi file mới dưới dạng uploads (hoặc upload_id của một
file đã gửi theo từng phần bằng POST /api/chunk); keep_original hoạt động như khi tải lên. File mới được
kiểm tra và chuyển đổi như một file tải lên mới, và phiên bản trước sẽ bị xóa. Cần khóa API đầy đủ;
trả về 404 nếu tài khoản của bạn không có file đó, 409 nếu file được bảo vệ bằng mật khẩu hoặc bị giới hạn lượt xem.
curl -X POST https://yourimageshare.com/api/aB3xY9qRz1/replace \
-H "X-API-Key: YOUR_API_KEY" -F [email protected]
GET /api - Liệt kê file đã tải lên
Trả về danh sách phân trang các file tải lên của tài khoản đã xác thực (từ mọi nguồn - API, website hoặc trình chỉnh sửa), mới nhất trước, 50 file mỗi trang.
| Tham số | Vị trí | Bắt buộc | Mô tả |
|---|---|---|---|
page | query | không | Số trang, mặc định là 1. |
Phản hồi - 200 OK:
{
"type": "success",
"data": [
{
"id": "aB3xY9qRz1",
"type": "image",
"title": null,
"path": "https://i.yourimageshare.com/aB3xY9qRz1.webp",
"src": "https://yourimageshare.com/ib/aB3xY9qRz1.webp",
"direct": "https://yourimageshare.com/ib/aB3xY9qRz1",
"thumb": "https://i.yourimageshare.com/thumb-aB3xY9qRz1.webp",
"width": 1920,
"height": 1080,
"size": 482113,
"locked": false,
"visibility": "unlisted",
"description": null,
"expires_at": null,
"created_at": "2026-07-23T15:43:28+01:00"
}
],
"meta": { "current_page": 1, "last_page": 1, "total": 1 }
}
Các trường ở đây có ý nghĩa giống như trong phản hồi tải lên
ở trên (với file tải lên được bảo vệ bằng mật khẩu, path và thumb là các link có chữ ký, chỉ tồn tại trong thời gian ngắn). Hiện chưa có endpoint riêng để "lấy một
file tải lên", nên danh sách này cũng là cách để tra cứu id của một file
sau này.
DELETE /api/{id} - Xóa một file tải lên
Xóa vĩnh viễn một file tải lên của tài khoản đã xác thực. Không thể
hoàn tác từ API. {id} là giá trị được trả về dưới dạng id bởi các endpoint tải lên hoặc liệt kê.
Phản hồi - 200 OK:
{ "type": "success", "msg": "Deleted." }
Trả về 404 nếu tài khoản của bạn không có file tải lên nào với id đó (hoặc nó
chưa bao giờ là của bạn, hoặc đã bị xóa).
Giới hạn tốc độ
Mỗi khóa API có hạn mức riêng theo phút và theo ngày, cộng thêm một mức trần theo ngày cho mỗi IP, rộng hơn, để phòng trường hợp một IP dùng lần lượt nhiều khóa. Tải lên, liệt kê và xóa dùng chung các giới hạn này.
| Khoảng thời gian | Giới hạn mặc định | Phạm vi |
|---|---|---|
| Mỗi phút | 20 request | mỗi khóa API |
| Mỗi ngày | 500 request | mỗi khóa API đầy đủ |
| Mỗi ngày | 2,000 request | mỗi khóa chỉ tải lên (plugin chuyển cả thư viện phương tiện) |
| Mỗi ngày | 2,000 request | mỗi địa chỉ IP |
| Mỗi phút | 300 phần | mỗi khóa API, chỉ với POST /api/chunk |
Các giới hạn này có thể thay đổi. Mọi phản hồi đều có các header giới hạn tốc độ chuẩn:
X-RateLimit-Limit: 20
X-RateLimit-Remaining: 14
Khi vượt giới hạn, hệ thống trả về 429 kèm header Retry-After cho biết bạn cần chờ bao nhiêu giây.
Lỗi
Mọi phản hồi lỗi đều có cùng một cấu trúc, bất kể endpoint hay nguyên nhân:
{ "type": "error", "errors": "A human-readable description of what went wrong." }
| Trạng thái | Ý nghĩa |
|---|---|
| 401 | Thiếu khóa API hoặc khóa không hợp lệ. |
| 403 | Tài khoản hoặc IP hiện tại của bạn đã bị cấm tải lên. |
| 404 | Không tìm thấy file tải lên nào khớp với id đó trong tài khoản này (lấy, thay đổi, xóa). |
| 413 | Request vượt quá 100MB. Hãy gửi file theo từng phần (POST /api/chunk) hoặc gửi link tới file trong url (tối đa 200MB). |
| 422 | Dữ liệu không hợp lệ - không có file hoặc link, định dạng file không được hỗ trợ, dữ liệu ảnh không đọc được, kích thước vượt giới hạn 30000x30000px, file vượt quá 200MB, upload_id chưa hoàn tất hoặc đã hết hạn, hoặc url không tải về được (thông báo sẽ nêu lý do). |
| 429 | Vượt giới hạn tốc độ - xem Giới hạn tốc độ ở trên. |
| 500 | Máy chủ gặp lỗi ngoài dự kiến. Có thể thử lại an toàn. |
Thư viện client
Các SDK chính thức bao bọc những endpoint ở trên, trả về kết quả có kiểu dữ liệu và báo lỗi API thay vì bạn phải tự xử lý HTTP thô.
JavaScript / TypeScript
Không có dependency, chạy được trên Node.js và trình duyệt. Cũng có trên JSR với tên @yourimageshare/yourimageshare - npx jsr add @yourimageshare/yourimageshare -
cùng mã nguồn, được phát hành trực tiếp dưới dạng TypeScript.
npm install yourimageshare
Python
Một dependency (requests), Python 3.8+.
pip install yourimageshare
PHP
Không có dependency Composer (dùng extension curl có sẵn của PHP), PHP 7.4+.
Mã nguồn trên GitHub.
composer require yourimageshare/yourimageshare-php
Go
Không có dependency (chỉ dùng thư viện chuẩn), Go 1.18+. Xem pkg.go.dev để đọc tài liệu tham chiếu đầy đủ.
go get github.com/yourimageshare/yourimageshare/go
Rust
Hai dependency (ureq cho HTTP blocking - không kéo theo async runtime
- cùng serde), Rust 1.70+. Mã nguồn trên GitHub.
cargo add yourimageshare
Ruby
Không có gem dependency (dùng Net::HTTP + json của stdlib), Ruby 2.7+.
Mã nguồn trên GitHub.
gem install yourimageshare
.NET
Một dependency (System.Text.Json của chính Microsoft), nhắm tới netstandard2.0
nên chạy được trên cả .NET Framework lẫn .NET hiện đại. Mã nguồn trên GitHub.
Đã được xây dựng và kiểm chứng với API thật này; sắp phát hành trên NuGet.
dotnet add package YourImageShare
Dart / Flutter
Một dependency (http, gói của chính đội Dart), Dart 2.17+. Mã nguồn trên GitHub.
Đã được xây dựng và kiểm chứng với API thật này; sắp phát hành trên pub.dev.
dart pub add yourimageshare
Elixir
Một dependency (Req), Elixir 1.14+. Trả về tuple có gắn nhãn {:ok, result}| {:error, reason} - tương đương trực tiếp với cách xử lý lỗi của API này trong mọi
SDK khác - cùng các biến thể có dấu chấm than sẽ raise lỗi. Mã nguồn trên GitHub,
tài liệu trên HexDocs.
{:yourimageshare, "~> 1.1"}
MCP Server
Dành cho các AI coding agent (Claude Code, Cursor và các công cụ khác tương thích MCP)
- đưa ảnh chụp màn hình vào báo cáo lỗi, mô tả PR hoặc cuộc trao đổi hỗ trợ dưới dạng
một link thật thay vì chuỗi base64 hay bước tải lên thủ công. Hoạt động tương tự với Claude
Desktop và mọi MCP client khác. Chạy trực tiếp bằng npx, không cần cài đặt:
npx yourimageshare-mcp
Công cụ: upload_image (file cục bộ, nội dung trực tiếp hoặc link, tối đa 200MB, kèm tùy chọn chế độ hiển thị, tiêu đề và tự động xóa), list_uploads, get_upload, update_upload và delete_upload.
Cũng có trong MCP Registry chính thức (với tên io.github.yourimageshare/yourimageshare) và được liệt kê trên Smithery và Glama, nếu MCP client của bạn cài từ một trong các nguồn đó.
Mới làm quen với MCP? Xem cách kết nối Claude và ChatGPT với API này qua MCP để có hướng dẫn thiết lập đầy đủ.
Cả mười thư viện đều theo giấy phép MIT. Chưa có thư viện chính thức cho ngôn ngữ của bạn? Phần ví dụ code bên dưới hướng dẫn cách gọi API trực tiếp.
Ví dụ code
curl
# Upload a file
curl "https://yourimageshare.com/api" \
-H "X-API-Key: YOUR_API_KEY" \
-F "uploads=@/path/to/photo.jpg"
# Upload from a link (files up to 200MB; one direct upload request stops at 100MB -
# bigger files go in pieces, see Large Files above)
curl "https://yourimageshare.com/api" \
-H "X-API-Key: YOUR_API_KEY" \
-F "url=https://example.com/video.mp4"
# Upload a file that auto-deletes after 1 hour
curl "https://yourimageshare.com/api" \
-H "X-API-Key: YOUR_API_KEY" \
-F "uploads=@/path/to/photo.jpg" \
-F "expires_in=3600"
# List uploads
curl "https://yourimageshare.com/api" -H "X-API-Key: YOUR_API_KEY"
# Upload a file without a page of its own (file only) and give it a title
curl "https://yourimageshare.com/api" \
-H "X-API-Key: YOUR_API_KEY" \
-F "uploads=@/path/to/photo.jpg" \
-F "visibility=private" \
-F "title=Sunset"
# Look up one upload, then make it public
curl "https://yourimageshare.com/api/aB3xY9qRz1" -H "X-API-Key: YOUR_API_KEY"
curl -X PATCH "https://yourimageshare.com/api/aB3xY9qRz1" \
-H "X-API-Key: YOUR_API_KEY" -d "visibility=public"
# Delete an upload
curl -X DELETE "https://yourimageshare.com/api/aB3xY9qRz1" -H "X-API-Key: YOUR_API_KEY"
JavaScript (fetch)
const API_KEY = 'YOUR_API_KEY';
const BASE = 'https://yourimageshare.com/api';
async function uploadFile(file) {
const form = new FormData();
form.append('uploads', file);
const res = await fetch(BASE, {
method: 'POST',
headers: { 'X-API-Key': API_KEY },
body: form,
});
const json = await res.json();
if (json.type !== 'success') throw new Error(json.errors);
return json.data;
}
async function listUploads(page = 1) {
const res = await fetch(`${BASE}?page=${page}`, {
headers: { 'X-API-Key': API_KEY },
});
return res.json();
}
async function deleteUpload(id) {
const res = await fetch(`${BASE}/${id}`, {
method: 'DELETE',
headers: { 'X-API-Key': API_KEY },
});
return res.json();
}
Python (requests)
import requests
API_KEY = "YOUR_API_KEY"
BASE = "https://yourimageshare.com/api"
HEADERS = {"X-API-Key": API_KEY}
# Upload a file
with open("/path/to/photo.jpg", "rb") as f:
res = requests.post(BASE, headers=HEADERS, files={"uploads": f})
res.raise_for_status()
upload = res.json()["data"]
# List uploads
res = requests.get(BASE, headers=HEADERS, params={"page": 1})
uploads = res.json()
# Delete an upload
res = requests.delete(f"{BASE}/{upload['id']}", headers=HEADERS)
PHP (curl)
<?php
$apiKey = 'YOUR_API_KEY';
$base = 'https://yourimageshare.com/api';
// Upload a file
$curl = curl_init($base);
curl_setopt_array($curl, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-API-Key: $apiKey"],
CURLOPT_POSTFIELDS => ['uploads' => new CURLFile('/path/to/photo.jpg')],
CURLOPT_RETURNTRANSFER => true,
]);
$upload = json_decode(curl_exec($curl), true)['data'];
curl_close($curl);
// List uploads
$curl = curl_init("$base?page=1");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["X-API-Key: $apiKey"]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$uploads = json_decode(curl_exec($curl), true);
curl_close($curl);
Go (net/http)
SDK Go chính thức ở trên đã bao bọc sẵn việc này cho bạn - phiên bản thô này dành cho ai không muốn thêm dependency.
package main
import (
"bytes"
"encoding/json"
"io"
"mime/multipart"
"net/http"
"os"
)
const apiKey = "YOUR_API_KEY"
const base = "https://yourimageshare.com/api"
func uploadFile(path string) (map[string]any, error) {
file, err := os.Open(path)
if err != nil {
return nil, err
}
defer file.Close()
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("uploads", path)
io.Copy(part, file)
writer.Close()
req, _ := http.NewRequest("POST", base, body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("X-API-Key", apiKey)
res, err := http.DefaultClient.Do(req)
if err != nil {
return nil, err
}
defer res.Body.Close()
var result map[string]any
json.NewDecoder(res.Body).Decode(&result)
return result, nil
}
Công cụ chụp màn hình
Một tiện ích trình duyệt cùng các cấu hình và
script dựng sẵn để gửi ảnh chụp màn hình thẳng lên YourImageShare, không cần
tải lên thủ công. Mỗi công cụ đều tải lên qua cùng endpoint /api được nêu ở trên.
Tiện ích trình duyệt (Chrome & Firefox)
Tiện ích YourImageShare Capture cho Chrome và Firefox giúp bạn bỏ qua
script và file cấu hình hoàn toàn. Tiện ích chụp vùng đang hiển thị, một
vùng kéo chọn hoặc cả trang cuộn dài, mở trình chỉnh sửa tích hợp để thêm
mũi tên, văn bản, làm mờ/che thông tin và các chú thích khác, sau đó tải kết quả xuống,
sao chép vào clipboard hoặc đăng thẳng lên YourImageShare chỉ với
một cú nhấp. Việc đăng dùng cùng endpoint /api được nêu
ở trên - chỉ cần thêm khóa API một lần trong phần Cài đặt của tiện ích và mỗi
lần đăng sau đó sẽ trả về ngay một link chia sẻ. Hoạt động trên Chrome
máy tính (và các trình duyệt Chromium khác), Firefox máy tính và Firefox cho Android.
Tải YourImageShare Capture cho Firefox Tải YourImageShare Capture cho Chrome
ShareX
Tải trình tải lên tùy chỉnh bên dưới, rồi trong ShareX vào Destinations > Custom uploader settings > Import > from file,
mở file .sxcu vừa tải, và thay YOUR_API_KEY trong trường Headers bằng khóa thật
của bạn. Đặt nó làm đích cho ảnh/file và các ảnh chụp sẽ tự động được tải lên.
Xóa file: link "Delete" của ShareX cho mỗi
file tải lên sẽ mở trang xóa của chúng tôi trong trình duyệt (chính là delete_url dùng một lần của file), nên bạn có thể xóa ảnh chụp ngay từ
lịch sử của ShareX. Bạn cũng có thể xóa file từ Tài khoản của tôi.
Đã tải file cấu hình trước tháng 10/2026? Hãy tải lại để có tính năng này.
Flameshot (Linux)
Một shell script nhỏ chạy flameshot gui, tải ảnh chụp lên
và sao chép link vào clipboard. Hãy gán nó cho một
phím tắt trong môi trường desktop của bạn thay cho phím tắt mặc định của Flameshot.
# One-time setup
chmod +x yis-flameshot-upload.sh
export YIS_API_KEY="YOUR_API_KEY" # or add to ~/.config/yourimageshare/api_key
# Then bind this to a hotkey instead of calling flameshot directly:
/path/to/yis-flameshot-upload.sh
Greenshot (Windows)
Một script PowerShell cho đích External command tích hợp sẵn của Greenshot. Tương thích với Windows PowerShell 5.1 đi kèm Windows, không cần cài thêm gì.
# One-time setup
setx YIS_API_KEY "YOUR_API_KEY"
# In Greenshot: Preferences > Destinations > External command > Settings
# Command: powershell.exe
# Arguments: -ExecutionPolicy Bypass -File "C:\path\to\yis-greenshot-upload.ps1" "%1"
Plugin diễn đàn
Thêm một nút "Tải ảnh lên" thực sự cạnh trình soạn thảo bài viết của diễn đàn.
Mỗi plugin tải lên qua cùng endpoint /api được nêu ở trên và chèn BBCode tại vị trí con trỏ - không cần mở tab riêng, không
phải sao chép dán thủ công.
Ở các bước dưới đây, hãy dùng khóa chỉ tải lên, không dùng khóa API của bạn. Mỗi plugin hiển thị khóa này trong mã nguồn trang của mọi khách truy cập, và khóa chỉ tải lên (Tài khoản của tôi > tab API) chỉ có thể tải lên - nó không thể liệt kê hay xóa file của bạn ngay cả khi ai đó sao chép nó từ trang.
Ảnh tải lên từ diễn đàn mặc định là private: ảnh hiển thị được trong bài viết,
nhưng YourImageShare không tạo trang riêng cho ảnh (không có bình luận, reaction hay quảng cáo). Mỗi
plugin có một tùy chọn để chuyển sang unlisted nếu bạn muốn có thêm một trang cho
bất kỳ ai có link.
phpBB
Một extension phpBB 3.2/3.3 thực thụ. Giải nén vào ext/, bật nó
trong Customise > Manage extensions, rồi thay YOUR_UPLOAD_ONLY_KEY trong file template event của extension bằng
khóa chỉ tải lên thật của bạn.
SMF (Simple Machines Forum)
Một gói SMF thực thụ - cài qua Admin > Package Manager,
rồi thay YOUR_UPLOAD_ONLY_KEY trong Sources/yis_forumupload.php bằng khóa chỉ tải lên thật của bạn.
MyBB
Một plugin MyBB 1.8 thực thụ. Sao chép vào inc/plugins/, kích hoạt trong Configuration > Plugins, rồi thay YOUR_UPLOAD_ONLY_KEY trong file plugin bằng khóa chỉ tải lên
thật của bạn.
FluxBB, PunBB & ZetaBoards
Các diễn đàn này không có hệ thống plugin chính thức, nên đây là một đoạn mã nhỏ được dán trực tiếp vào template (FluxBB/PunBB) hoặc Admin CP (ZetaBoards) - có hướng dẫn sao chép dán đầy đủ cho từng loại:
Plugin WordPress
Chuyển Thư viện phương tiện của bạn sang YourImageShare thay vì
ổ đĩa cục bộ. Ảnh/video mới tải lên sẽ tự động đi qua cùng endpoint /api được nêu ở trên, file cục bộ (và mọi kích thước thu nhỏ được tạo ra) sẽ bị xóa khi
việc tải lên được xác nhận, và mọi URL đính kèm của WordPress
- trình soạn thảo block, ảnh đại diện, thư viện ảnh, REST API - đều trỏ tới
file được lưu trữ trên YourImageShare. Không cần shortcode, không đổi quy trình làm việc.
- Chuyển hàng loạt Thư viện phương tiện hiện có chạy nền (hoặc bằng
wp yis offload --all), không chỉ các file mới tải lên - Ảnh và video đã chèn trong bài viết vẫn hoạt động sau khi file cục bộ bị xóa
- Ảnh thu nhỏ và srcset dùng ảnh thu nhỏ 280px của chúng tôi, nên các vị trí ảnh nhỏ không phải tải file kích thước đầy đủ
- File tới 200MB, được gửi theo từng phần nên video lớn không bao giờ làm nặng host dùng chung
- Khôi phục bất kỳ file nào đã chuyển về lưu trữ cục bộ bất cứ lúc nào
- Một cột trong Thư viện phương tiện cho biết file nào đã chuyển và file nào vẫn ở cục bộ
- File đã chuyển được lưu ở chế độ private: chúng hiển thị ở mọi nơi trang web của bạn dùng, nhưng không có trang riêng trên YourImageShare
Dùng khóa chỉ tải lên của bạn, không dùng khóa API. Khóa API đầy đủ (không bắt buộc) chỉ cần nếu bạn muốn file đã chuyển bị xóa khỏi YourImageShare khi bạn xóa chúng trong WordPress.
Tải trên WordPress.org Tải file ZIP
Trong WordPress: Plugins > Add New, tìm YourImageShare Media Offload, rồi Install và Activate.
Từ blog
Hướng dẫn và bài viết chi tiết dành cho lập trình viên
- Tải ảnh chụp màn hình lên ngay lập tức bằng ShareX, Flameshot hoặc Greenshot
- Thêm nút tải ảnh lên thực sự cho diễn đàn phpBB, SMF hoặc MyBB của bạn
- Cách dùng MCP: kết nối Claude, ChatGPT và AI agent với YourImageShare
- YourImageShare Capture: tiện ích chụp màn hình cho Chrome và Firefox
- Chuyển Thư viện phương tiện WordPress sang dịch vụ lưu trữ ảnh miễn phí
Sẵn sàng dùng thử?
Lấy khóa API của bạn →