เชชเซเชฐเชพเชเซเชคเชฟเชนเชพเชธเชฟเช
เชเชตเซเช เชฌเชจเซเชฏเซเช เชเซ เชฎเชพเชฐเซ เชเซเชฏเชพเชเช 1.5 TB เชฅเซ เชตเชงเซ เชกเซเชเชพ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เช เชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชฎเชพเชเซ เชคเซเชจเซ เชธเซเชงเซ เชฒเชฟเชเช เชฆเซเชตเชพเชฐเชพ เชกเชพเชเชจเชฒเซเชก เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ เชชเชฃ เชชเซเชฐเชฆเชพเชจ เชเชฐเชตเซ เชชเชกเชถเซ. เชชเชฐเชเชชเชฐเชพเชเชค เชฐเซเชคเซ เชเชเชฒเซ เชฎเชพเชคเซเชฐเชพเชฎเชพเช เชฎเซเชฎเชฐเซ เชตเซเชกเซเชเชธเชฎเชพเช เชเชพเชฏ เชเซ, เชคเซเชฅเซ เชญเชพเชกเซ เชเชชเชตเชพเชจเซ เชเชฐเซเช เชเซ เชชเซเชฐเซเชเซเชเซเช เชฌเชเซเชเชฎเชพเช "เชเชฐเชตเชพเชจเซเช เชเชเช เชจเชฅเซ" เชเซเชเซเชเชฐเซเชฎเชพเชเชฅเซ เชเซเชฌ เช เชธเชฎเชพเชตเชฟเชทเซเช เชจเชฅเซ, เช เชจเซ เชธเซเชฐเซเชค เชกเซเชเชพเชฎเชพเชเชฅเซ เชฎเชพเชฐเซ เชชเชพเชธเซ VPS 400GB SSD เชนเชคเซเช, เชเซเชฏเชพเช, เชเซ เชนเซเช เชเชเซเชเชคเชพ เชนเชคเชพ, เชนเซเช เชฒเซเชธเชฒเซเชธ เชเชฎเซเชชเซเชฐเซเชถเชจ เชตเชฟเชจเชพ 1.5TB เชเชฎเซเช เชฎเซเชเซ เชถเชเซเชฏเซ เชจเชฅเซ เชคเซ เชธเชซเชณ เชฅเชถเซ.
เช เชจเซ เชชเชเซ เชฎเชจเซ เชฏเชพเชฆ เชเชตเซเชฏเซเช เชเซ เชเซ เชนเซเช Google เชกเซเชฐเชพเชเชตเชฎเชพเชเชฅเซ เชเชเช เชเชพเชขเซ เชจเชพเชเซเช เชเซเช, เชเซเชฎ เชเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเซเชธ เชเซ เชเซ เชซเชเซเชค Windows XP เชชเชฐ เช เชเชพเชฒเชถเซ, เช เชจเซ เช เชจเซเชฏ เชตเชธเซเชคเซเช เชเซ เชเช เชเชชเชเชฐเชฃเชฅเซ เชฌเซเชเชพ เชเชชเชเชฐเชฃ เชชเชฐ เชเชธเซเชกเชตเชพเชฎเชพเช เชเชตเซ เชฐเชนเซ เชเซ เชคเซ เชฆเชฟเชตเชธเซเชฅเซ เชเซเชฏเชพเชฐเซ เชเชจเซเชเชฐเชจเซเช เชเชเชฒเซเช เชเชกเชชเซ เชจเชนเซเชคเซเช เชคเซเชฏเชพเชฐเซ เช เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชจเชฅเซ ( เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชตเชฐเซเชเซเชฏเซเช เชฒ เชฌเซเชเซเชธเชจเชพ เชคเซ 10-20 เชตเชฐเซเชเชจเชฎเชพเช เชจเซเชธเซเชเชพเชฒเซเชเชฟเช เชธเชฟเชตเชพเชฏ เช เชจเซเชฏ เชเซเช เชฎเซเชฒเซเชฏ เชนเซเชตเชพเชจเซ เชถเชเซเชฏเชคเชพ เชจเชฅเซ), เชคเซ เชชเชเซ เชฌเชงเซเช เชเซเชฌ เช เชธเชพเชฐเซ เชฐเซเชคเซ เชซเชฟเช เชฅเชตเซเช เชเซเชเช. เชเชฐเซเชฏเซเช เชเชฐเชคเชพเช เชตเชนเซเชฒเซเช เชเชนเซเชฏเซเช. เช เชจเซ เชคเซเชฅเซ, api เชจเซ เชตเชฟเชจเชเชคเซเชเชจเซ เชธเชเชเซเชฏเชพเชจเซ เชฎเชฐเซเชฏเชพเชฆเชพเชจเซ เชคเซเชกเซเชจเซ (เชฎเชพเชฐเซเช เชฆเซเชตเชพเชฐเชพ, เชเซเชเชชเชฃ เชธเชฎเชธเซเชฏเชพ เชตเชฟเชจเชพ เชคเชเชจเซเชเซ เชธเชชเซเชฐเซเชเซ 100 เชธเซเชเชจเซเชกเชฎเชพเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชฆเซเช เชตเชฟเชจเชเชคเซเชเชจเซ เชเซเชตเซเชเชพ เชตเชงเชพเชฐเซเชจเซ 10 เชเชฐเซ เชฆเซเชงเซ), เชกเซเชเชพ เชเชกเชชเชฅเซ เชคเซเชจเชพ เชตเชงเซ เชเชฎเชพเชตเชเชจเชพ เชธเซเชฅเชณเซ เชตเชนเซเชคเซ เชฅเชฏเซ. .
เชฌเชงเซเช เชธเชพเชฐเซเช เชฒเชพเชเซ เชเซ, เชชเชฐเชเชคเซ เชนเชตเซ เชคเซเชจเซ เช เชเชคเชฟเชฎ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชธเซเชงเซ เชชเชนเซเชเชเชพเชกเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชคเชฆเซเชชเชฐเชพเชเชค, เช เชจเซเชฏ เชธเชเชธเชพเชงเชจเซเชจเซ เชเซเชเชชเชฃ เชฐเซเชกเชพเชฏเชฐเซเชเซเช เชเชฐเซเชฏเชพ เชตเชฟเชจเชพ, เชชเชฐเชเชคเซ เชเซเชฅเซ เชตเซเชฏเชเซเชคเชฟ เชซเชเซเชค "เชกเชพเชเชจเชฒเซเชก" เชฌเชเชจเชจเซ เชฆเชฌเชพเชตเชถเซ เช เชจเซ เชญเชเชกเชพเชฐ เชซเชพเชเชฒเชจเซ เชเซเชถ เชฎเชพเชฒเชฟเช เชฌเชจเซ เชเชถเซ.
เช เชนเซเช, เชญเชเชตเชพเชจ เชฆเซเชตเชพเชฐเชพ, เชนเซเช เชคเชฎเชพเชฎ เชชเซเชฐเชเชพเชฐเชจเซ เชฎเซเชถเซเชเซเชฒเซเชเชฎเชพเช เชเชฏเซ. เชถเชฐเซเชเชคเชฎเชพเช เชคเซ เชเชเชฎเชชเซเชเชเชชเซเชฎเชพเช เชเช เชธเซเชเซเชฐเชฟเชชเซเช เชนเชคเซ, เชชเชฐเชเชคเซ เชนเซเช เชคเซ เชฌเชจเชพเชตเซเชฒเชพ เชญเชพเชฐเชฅเซ เชธเชเชคเซเชทเซเช เชจ เชนเชคเซ (100% เชเซเชฐ เชตเชชเชฐเชพเชถเชจเซ เชถเชฐเซเชเชคเชฎเชพเช เชคเซเชตเซเชฐ เชเชเชพเชณเซ). เชชเชเซ ReactPHP เชฎเชพเชเซ เชเชฐเซเชฒ เชฐเซเชชเชฐ เช เชฎเชฒเชฎเชพเช เชเชตเซเชฏเซเช, เชเซ CPU เชธเชพเชฏเชเชฒเชจเซ เชตเชชเชฐเชพเชถเชจเซ เชธเชเชเซเชฏเชพเชจเชพ เชธเชเชฆเชฐเซเชญเชฎเชพเช เชฎเชพเชฐเซ เชเชเซเชเชพเชเชฎเชพเช เชเชเชฆเชฎ เชฌเชเชงเชฌเซเชธเชคเซเช เชนเชคเซเช, เชชเชฐเชเชคเซ เชฎเชจเซ เชเซ เชเซเชเชคเซเช เชนเชคเซเช เชคเซ เชเชคเชฟ เชเชชเซ เชจ เชนเชคเซ (เชคเซ เชฌเชนเชพเชฐ เชเชตเซเชฏเซเช เชเซ เชเซ เชคเชฎเซ เชซเชเซเชค เชเซเชฒเชฟเชเชเชจเชพ เช เชเชคเชฐเชพเชฒเชจเซ เชเชเชพเชกเซ เชถเชเซ เชเซ. curl_multi_select, เชชเชฐเชเชคเซ เชชเชเซ เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชชเซเชฐเชฅเชฎ เชตเชฟเชเชฒเซเชชเชจเซ เชเซเชฎ เชเชพเชเชงเชฐเชพเชชเชฃเซเช เชเซ). เชฎเซเช เชฐเชธเซเชเชฎเชพเช เชเช เชจเชพเชจเซ เชธเซเชตเชพ เชฒเชเชตเชพเชจเซ เชชเชฃ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเชฏเซ, เช เชจเซ เชคเซ เชเซเชฌ เช เชเชกเชชเชฅเซ เชเชพเชฎ เชเชฐเซเชฏเซเช (เชคเซ เชเชถเซเชเชฐเซเชฏเชเชจเช เชเซ เชเซ เชคเซ เชเชพเชฎ เชเชฐเซเชฏเซเช, เชฎเชพเชฐเชพ เชเซเชเชพเชจเชจเซ เชเซเชคเชพเช), เชชเชฐเชเชคเซ เชฎเชจเซ เชตเชงเซ เชเซเชเชคเซเช เชนเชคเซเช, เช เชจเซ เชคเซเชจเซ เชเชธเซเชเชฎเชพเชเช เชเชฐเชตเซเช เชเซเชเช เชฐเซเชคเซ เชฎเซเชถเซเชเซเชฒ เชนเชคเซเช. เชตเชงเซเชฎเชพเช, เช เชฌเชงเชพ เชเชเซเชฒเซเช เชเซเชเช เชฐเซเชคเซ เชชเซเชฐเชคเชฟเชญเชพเชตเชจเซ เชตเชฟเชเชฟเชคเซเชฐ เชฐเซเชคเซ เชฌเชซเชฐ เชเชฐเซเชฏเซ, เช เชจเซ เชนเซเช เชคเซ เชเซเชทเชฃเชจเซ เชเซเชฐเซ เช เชเชฐเชตเชพ เชฎเชพเชเชเชคเซ เชนเชคเซ เชเซเชฏเชพเชฐเซ เชซเชพเชเชฒ เชกเชพเชเชจเชฒเซเชก เชธเซเชฅเซ เชตเชงเซ เชธเชเซเชเชคเชพ เชธเชพเชฅเซ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ.
เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เชคเซ เชฅเซเชกเชพ เชธเชฎเชฏ เชฎเชพเชเซ เชเซเชเชฟเชฒ เชนเชคเซเช, เชชเชฐเชเชคเซ เชคเซ เชเชพเชฎ เชเชฐเซเชฏเซเช. เชเช เชฆเชฟเชตเชธ เชธเซเชงเซ เชนเซเช เชเช เชตเชฟเชเชพเชฐ เชธเชพเชฅเซ เชเชตเซเชฏเซ เชเซ เชคเซเชจเซ เชเชจเซเชฎเชคเซเชคเชคเชพเชฎเชพเช เชจเซเชเชงเชชเชพเชคเซเชฐ เชนเชคเซ: nginx, เชธเชฟเชฆเซเชงเชพเชเชคเชฎเชพเช, เชนเซเช เชเซ เชเชเซเชเซเช เชคเซ เชเชฐเซ เชถเชเซ เชเซ, เชเชกเชชเชฅเซ เชเชพเชฎ เชเชฐเซ เชถเชเซ เชเซ เช เชจเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชธเชพเชฅเซ เชคเชฎเชพเชฎ เชชเซเชฐเชเชพเชฐเชจเชพ เชตเชฟเชเซเชคเชฟเชเชจเซ เชฎเชเชเซเชฐเซ เชชเชฃ เชเชชเซ เชถเชเซ เชเซ. เชเชชเชฃเซ เชชเซเชฐเชฏเชคเซเชจ เชเชฐเชตเซ เชชเชกเชถเซ - เชเซ เชคเซ เชเชพเชฎ เชเชฐเซ เชคเซ เชถเซเช? เช เชจเซ เช เชกเชงเชพ เชฆเชฟเชตเชธเชจเซ เชธเชคเชค เชถเซเชง เชชเชเซ, เชเช เชเชเซเชฒเชจเซ เชเชจเซเชฎ เชฅเชฏเซ เชเซ เชเชฃเชพ เชฎเชนเชฟเชจเชพเชเชฅเซ เชธเซเชฅเชฟเชฐ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซ เชฐเชนเซเชฏเซ เชนเชคเซ เช เชจเซ เชฎเชพเชฐเซ เชฌเชงเซ เชเชตเชถเซเชฏเชเชคเชพเชเชจเซ เชชเซเชฐเซเชฃ เชเชฐเชคเซ เชนเชคเซ.
NGINX เชธเซเช เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ
# ะะตัะฒัะผ ะดะตะปะพะผ ัะพะทะดะฐะดะธะผ ะฒ ะบะพะฝัะธะณะฐั
ะฝะฐัะตะณะพ ัะฐะนัะฐ ะพัะดะตะปัะฝัั ะปะพะบะฐัะธั.
location ~* ^/google_drive/(.+)$ {
# ะ ะทะฐะบัะพะตะผ ะตั ะพั ะฟะพััะพัะพะฝะฝะธั
ะณะปะฐะท (ััะบ, ะฝะพะณ ะธ ะฟัะพัะธั
ัะฐััะตะน ัะตะปะฐ).
internal;
# ะะณัะฐะฝะธัะธะผ ะฟะพะปัะทะพะฒะฐัะตะปัะผ ัะบะพัะพััั ะดะพ ัะฐะทัะผะฝัั
ะฟัะตะดะตะปะพะฒ (ั ะทะฐ ัะฐะฒะฝะพะฟัะฐะฒะธะต).
limit_rate 1m;
# ะ ััะพะฑ nginx ะผะพะณ ะฝะฐะนัะธ ัะตัะฒะตัะฐ google drive ัะบะฐะถะตะผ ะตะผั ะฐะดัะตั ัะตะทะพะปะฒะตัะฐ.
resolver 8.8.8.8;
# Cะพะฑะตัะตะผ ะฟััั ะบ ะฝะฐัะตะผั ัะฐะนะปั (ะผั ะฟะพัะพะผ ะฟะตัะตะดะฐะดะธะผ ะตะณะพ ะทะฐะณะพะปะพะฒะบะฐะผะธ).
set $download_url https://www.googleapis.com/drive/v3/files/$upstream_http_file_id?alt=media;
# ะ ัะฐะบ ะถะต Content-Disposition ะทะฐะณะพะปะพะฒะพะบ, ะธะผั ัะฐะนะปะฐ ะผั ะฟะตัะตะดะฐะดะธะผ ะพะฟััั ะถะต ะฒ ะทะฐะณะพะปะพะฒะบะฐั
.
set $content_disposition 'attachment; filename="$upstream_http_filename"';
# ะะฐะฟัะตัะธะผ ะฑัััะตัะธะทะธัะพะฒะฐัั ะพัะฒะตั ะฝะฐ ะดะธัะบ.
proxy_max_temp_file_size 0;
# ะ, ััะพ ะฝะตะผะฐะปะพะฒะฐะถะฝะพ, ะฟะตัะตะดะฐะดะธะผ ะทะฐะณะพะปะพะฒะพะบ ั ัะพะบะตะฝะพะผ (ะฝะต ะทะฝะฐั ะฟะพัะตะผั, ะฝะพ ะฒ ะทะฐะณะพะปะพะฒะบะฐั
ะธะท $http_upstream ัะพะบะตะฝ ะฟะตัะตะดะฐัั ะฝะต ะฟะพะปััะธะปะพัั. ะะตัะฝะตะต ะฟะตัะตะดะฐัั ะฟะพะปััะธะปะพัั, ะฝะพ ัะบะพัะตะน ะฒัะตะณะพ ะตะณะพ ะณะดะต-ัะพ ะฝัะถะฝะพ ัะบัะฐะฝะธัะพะฒะฐัั, ะฟะพัะพะผั ััะพ ะณัะณะป ะพัะดะฐะตั ะพัะธะฑะบั ะฐะฒัะพัะธะทะฐัะธะธ).
proxy_set_header Authorization 'Bearer $1';
# ะ ะฒัะต, ะพััะฐะปะพัั ะพัะฟัะฐะฒะธัั ะทะฐะฟัะพั ะณัะณะปั ะฟะพ ัะฐะฝะตะต ัะพะฑัะฐะฝะฝะพะผั ะฝะฐะผะธ ะฐะดัะตัั.
proxy_pass $download_url;
# ะ ััะพะฑ ั ะฟะพะปัะทะพะฒะฐัะตะปั ะฟัะธ ัะบะฐัะธะฒะฐะฝะธะธ ะพัะพะฑัะฐะทะธะปะพัั ะฟัะฐะฒะธะปัะฝะพะต ะธะผั ัะฐะนะปะฐ ะผั ะดะพะฑะฐะฒะธะผ ัะพะพัะฒะตัััะฒัััะธะน ะทะฐะณะพะปะพะฒะพะบ.
add_header Content-Disposition $content_disposition;
# ะะฟัะธะพะฝะฐะปัะฝะพ ะผะพะถะฝะพ ะฟะพัะฑะธัะฐัั ะฝะตะฝัะถะฝัะต ะฝะฐะผ ะทะฐะณะพะปะพะฒะบะธ ะพั ะณัะณะปะฐ.
proxy_hide_header Content-Disposition;
proxy_hide_header Alt-Svc;
proxy_hide_header Expires;
proxy_hide_header Cache-Control;
proxy_hide_header Vary;
proxy_hide_header X-Goog-Hash;
proxy_hide_header X-GUploader-UploadID;
}
เชเชฟเชชเซเชชเชฃเซเช เชตเชฟเชจเชพเชจเซเช เชเซเชเชเซเช เชธเชเชธเซเชเชฐเชฃ เชธเซเชชเซเชเชฒเชฐ เชนเซเช เชณ เชเซเช เชถเชเชพเชฏ เชเซ
location ~* ^/google_drive/(.+)$ {
internal;
limit_rate 1m;
resolver 8.8.8.8;
set $download_url https://www.googleapis.com/drive/v3/files/$upstream_http_file_id?alt=media;
set $content_disposition 'attachment; filename="$upstream_http_filename"';
proxy_max_temp_file_size 0;
proxy_set_header Authorization 'Bearer $1';
proxy_pass $download_url;
add_header Content-Disposition $content_disposition;
proxy_hide_header Content-Disposition;
proxy_hide_header Alt-Svc;
proxy_hide_header Expires;
proxy_hide_header Cache-Control;
proxy_hide_header Vary;
proxy_hide_header X-Goog-Hash;
proxy_hide_header X-GUploader-UploadID;
}
เช เชฌเชงเซ เชเซเชถเซเชเชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเชตเชพ เชฎเชพเชเซ เช เชฎเซ เชเช เชธเซเชเซเชฐเชฟเชชเซเช เชฒเชเซ เชฐเชนเซเชฏเชพ เชเซเช
เชเชฆเชพเชนเชฐเชฃ PHP เชฎเชพเช เชนเชถเซ เช เชจเซ เชเชฐเชพเชฆเชพเชชเซเชฐเซเชตเช เชเชเชพเชฎเชพเช เชเชเซ เชเซเช เชธเชพเชฅเซ เชฒเชเชตเชพเชฎเชพเช เชเชตเชถเซ. เชฎเชจเซ เชฒเชพเชเซ เชเซ เชเซ เช เชจเซเชฏ เชเซเชเชชเชฃ เชญเชพเชทเชพเชจเซ เช เชจเซเชญเชต เชงเชฐเชพเชตเชจเชพเชฐ เชเซเชเชชเชฃ เชฎเชพเชฐเชพ เชเชฆเชพเชนเชฐเชฃเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เช เชตเชฟเชญเชพเชเชจเซ เชธเชเชเชฒเชฟเชค เชเชฐเซ เชถเชเชถเซ.
<?php
# ะขะพะบะตะฝ ะดะปั Google Drive Api.
define('TOKEN', '*****');
# ID ัะฐะนะปะฐ ะฝะฐ ะณัะณะป ะดะธัะบะต
$fileId = 'abcdefghijklmnopqrstuvwxyz1234567890';
# ะะฟัะธะพะฝะฐะปัะฝะพ, ะฝะพ ัะฐะบ ะบะฐะบ ะผั ะฝะต ะฟะตัะตะดะฐะตะผ ะฝะธะบะฐะบะธั
ะดะฐะฝะฝัั
- ะฟะพัะตะผั ะฑั ะธ ะฝะตั?
http_response_code(204);
# ะะฐะดะฐะดะธะผ ะทะฐะณะพะปะพะฒะพะบ c ID ัะฐะนะปะฐ (ะฒ ะบะพะฝัะธะณะฐั
nginx ะผั ะฟะพัะพะผ ะฟะพะปััะธะผ ะตะณะพ ะบะฐะบ $upstream_http_file_id).
header('File-Id: ' . $fileId);
# ะ ะทะฐะณะพะปะพะฒะพะบ ั ะธะผะตะฝะตะผ ัะฐะนะปะฐ (ัะพะพัะฒะตัััะฒะตะฝะฝะพ $upstream_http_filename).
header('Filename: ' . 'test.zip');
# ะะฝัััะตะฝะฝะธะน ัะตะดะธัะตะบั. ะ ะตัะต ะฒ ะฐะดัะตัะต ะผั ะฟะตัะตะดะฐะดะธะผ ัะพะบะตะฝ, ัะพั ัะฐะผัะน, ััะพ ะผั ะฟะพะปััะฐะตะผ ะธะท $1 ะฒ nginx.
header('X-Accel-Redirect: ' . rawurlencode('/google_drive/' . TOKEN));
เชชเชฐเชฟเชฃเชพเชฎเซ
เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เช เชชเชฆเซเชงเชคเชฟ เชเซเชเชชเชฃ เชเซเชฒเชพเชเชก เชธเซเชเซเชฐเซเชเชฎเชพเชเชฅเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเชจเซ เชซเชพเชเชฒเซเชจเชพ เชตเชฟเชคเชฐเชฃเชจเซ เชเซเช เชตเชตเชพเชจเซเช เชเชเชฆเชฎ เชธเชฐเชณ เชฌเชจเชพเชตเซ เชเซ. เชนเชพ, เชเซเชฒเชฟเชเซเชฐเชพเชฎ เช
เชฅเชตเชพ VK เชฅเซ เชชเชฃ, (เชเซ เชเซ เชซเชพเชเชฒเชจเซเช เชเชฆ เช เชธเซเชเซเชฐเซเชเชจเชพ เช
เชจเซเชฎเชคเชฟเชชเชพเชคเซเชฐ เชเชฆ เชเชฐเชคเชพเช เชตเชงเซ เชจ เชนเซเชฏ เชคเซ). เชฎเชพเชฐเซ เชชเชพเชธเซ เชธเชฎเชพเชจ เชตเชฟเชเชพเชฐ เชนเชคเซ
เชคเชฎเชพเชฐเชพ เชงเซเชฏเชพเชจ เชฌเชฆเชฒ เชเชญเชพเชฐ. เชฎเชจเซ เชเชถเชพ เชเซ เชเซ เชฎเชพเชฐเซ เชตเชพเชฐเซเชคเชพ เชคเชฎเชพเชฐเชพ เชฎเชพเชเซ เชเชเชพเชฎเชพเช เชเชเซ เชฅเซเชกเซ เชฐเชธเชชเซเชฐเชฆ เช เชฅเชตเชพ เชเชชเชฏเซเชเซ เชนเชคเซ.
เชธเซเชฐเซเชธ: www.habr.com