โซลูชันอันทรงพลังของ Python สำหรับการเก็บถาวรและการซิปไฟล์
การเก็บถาวรและการบีบอัดไฟล์เป็นงานสำคัญในโลกดิจิทัล ช่วยให้สามารถจัดเก็บและถ่ายโอนข้อมูลจำนวนมากได้อย่างมีประสิทธิภาพ
บทความนี้จะสำรวจว่า Python ลดความซับซ้อนของกระบวนการเหล่านี้ด้วยไลบรารีในตัว zipfile
และ tarfile
ได้อย่างไร นอกจากนี้ เราจะเปรียบเทียบวิธีการบีบอัดที่นำเสนอโดยทั้งสองไลบรารีเพื่อทำความเข้าใจจุดแข็งและจุดอ่อนของพวกเขา
เมื่อสิ้นสุดบทช่วยสอนนี้ คุณจะสามารถสร้าง แตกไฟล์ และจัดการไฟล์เก็บถาวรในรูปแบบต่างๆ โดยใช้ Python ได้ พร้อมทั้งได้รับข้อมูลที่เป็นประโยชน์เกี่ยวกับวิธีการบีบอัดข้อมูลอีกด้วย
ตัวอย่างทั้งหมดมีอยู่ใน ไลบรารี GitHub นี้
การควบคุมไลบรารี zipfile ของ Python เพื่อการบีบอัด
ไลบรารีไฟล์ zip ในตัวของ Python ช่วยให้คุณทำงานกับไฟล์ ZIP ได้อย่างราบรื่น ส่วนนี้จะกล่าวถึงการใช้ไลบรารีนี้เพื่อสร้าง แยก เพิ่ม และอ่านข้อมูลเมตาจากไฟล์ ZIP
การอ่านข้อมูลเมตาจากไฟล์ ZIP
ขั้นแรก เราจะอ่านข้อมูลเมตาจากไฟล์ ZIP ที่มีอยู่ การอ่านข้อมูลเมตาจากไฟล์ ZIP เกี่ยวข้องกับการใช้ไลบรารี zipfile
ในตัวของ Python ข้อมูลเมตาอาจมีรายละเอียด เช่น ชื่อไฟล์ ขนาดไฟล์ และเวลาที่แก้ไขล่าสุด
ตัวอย่างด้านล่างแสดงวิธีการเปิดไฟล์ ZIP อ่านข้อมูลเมตา และแสดงข้อมูลสำหรับแต่ละไฟล์ภายในไฟล์เก็บถาวร
เราใช้ตัวจัดการบริบท ZipFile ในฟังก์ชัน main
เพื่อเปิดไฟล์ meta.zip
อ็อบเจ็กต์ zip_file
มีเมธอด infolist
ซึ่งจะส่งคืนรายการที่มีอ็อบเจ็กต์ ZipInfo
สำหรับไฟล์ทั้งหมดภายใน meta.zip
ต่อไป เราจะวนซ้ำออบเจ็กต์ ZipInfo
ทั้งหมด และแสดงข้อมูลเมตาของแต่ละไฟล์โดยใช้ฟังก์ชัน print_metadata
ข้อมูลเมตาที่นำเสนอประกอบด้วยชื่อไฟล์ ขนาดที่บีบอัด วันที่และเวลาที่แก้ไขล่าสุด และขนาดไฟล์
import zipfile def print_metadata(file_info): file_name = file_info.filename file_size = file_info.file_size compressed_size = file_info.compress_size l_mod = file_info.date_time l_mod_date = f"{l_mod[0]:02d}-{l_mod[1]:02d}-{l_mod[2]:02d}" l_mod_time = f"{l_mod[3]:02d}:{l_mod[4]:02d}:{l_mod[5]:02d}" compression_ratio = compressed_size / file_size if file_size > 0 else 0 print(f"File Name: {file_name}") print(f"File Size: {file_size} bytes") print(f"Compressed Size: {compressed_size} bytes") print(f"Last Modified: {l_mod_date} {l_mod_time}") print(f"Compression Ratio: {compression_ratio:.2%}\n") def main(): # Open the ZIP archive in read mode with zipfile.ZipFile('meta.zip', 'r') as zip_file: # Iterate through the files in the archive for file_info in zip_file.infolist(): print_metadata(file_info) if __name__ == "__main__": main()
เมื่อเรารันตัวอย่าง มันจะสร้างผลลัพธ์ต่อไปนี้
การสร้างไฟล์ ZIP
ตอนนี้เรามาดูวิธีสร้างไฟล์ ZIP โดยใช้ไลบรารี zipfile
ใน Python กัน การสร้างไฟล์ ZIP เกี่ยวข้องกับการสร้างไฟล์เก็บถาวรใหม่หรืออัปเดตไฟล์ที่มีอยู่โดยการเพิ่มหรือแก้ไขไฟล์ กระบวนการนี้จำเป็นสำหรับการบีบอัดไฟล์หลายไฟล์ให้เป็นไฟล์ขนาดเล็กเพียงไฟล์เดียว ซึ่งเป็นประโยชน์ต่อการจัดเก็บและการแจกจ่าย
ในตัวอย่างนี้ ฟังก์ชัน create_zip_archive
รับ input_folder
และ output_file
เป็นอาร์กิวเมนต์ ฟังก์ชันนี้เปิดไฟล์ ZIP ใหม่พร้อมชื่อไฟล์เอาต์พุตที่ระบุในโหมดเขียน 'w'
และใช้วิธีการบีบอัด ZIP_DEFLATED
จากนั้นจะเดินผ่านโครงสร้างไดเร็กทอรีของโฟลเดอร์อินพุต โดยเพิ่มแต่ละไฟล์ลงในไฟล์เก็บถาวรด้วยเส้นทางสัมพันธ์กัน เพื่อให้แน่ใจว่าโครงสร้างโฟลเดอร์จะคงอยู่ในไฟล์ ZIP
import zipfile import os def create_zip_archive(input_folder, output_file): with zipfile.ZipFile(output_file, 'w', zipfile.ZIP_DEFLATED) as zip_file: for root, dirs, files in os.walk(input_folder): for file in files: file_path = os.path.join(root, file) print(f"Adding {file_path} to {output_file}") zip_file.write(file_path, os.path.relpath(file_path, input_folder)) def main(): input_folder = 'example_folder' output_file = 'example_archive.zip' create_zip_archive(input_folder, output_file) if __name__ == "__main__": main()
ตัวอย่างนี้ใช้วิธีการบีบอัด zipfile.ZIP_DEFLATE
ไลบรารี zipfile
ใน Python รองรับวิธีการบีบอัดสามวิธีและวิธีหนึ่งที่เก็บไฟล์โดยไม่มีการบีบอัด
zipfile.ZIP_STORED
: วิธีการนี้จัดเก็บไฟล์โดยไม่มีการบีบอัดใดๆ เป็นวิธีเริ่มต้นเมื่อไม่ได้ระบุวิธีการบีบอัด ไฟล์จะถูกเก็บถาวรโดยไม่ลดขนาด ซึ่งจะมีประโยชน์เมื่อต้องจัดการกับไฟล์ที่ถูกบีบอัดอยู่แล้ว เช่น ไฟล์รูปภาพหรือวิดีโอ ซึ่งการบีบอัดเพิ่มเติมจะไม่ทำให้ขนาดลดลงอย่างมากzipfile.ZIP_DEFLATED
: วิธีการนี้ใช้อัลกอริธึม DEFLATE สำหรับการบีบอัดไฟล์ภายในไฟล์เก็บถาวร DEFLATE เป็นวิธีการบีบอัดที่ใช้กันอย่างแพร่หลายที่สุดในไฟล์ ZIP ซึ่งช่วยรักษาสมดุลของความเร็วและประสิทธิภาพในการบีบอัดได้ดี คุณต้องมีโมดูล zlib ในการติดตั้ง Python ของคุณเพื่อใช้การบีบอัด DEFLATEzipfile.ZIP_BZIP2
: วิธีการนี้ใช้อัลกอริธึม BZIP2 สำหรับการบีบอัดไฟล์ภายในไฟล์เก็บถาวร โดยทั่วไป BZIP2 ให้อัตราส่วนการบีบอัดที่ดีกว่า DEFLATE แต่อาจช้ากว่าได้ หากต้องการใช้การบีบอัด BZIP2 คุณต้องมีโมดูลbz2
ในการติดตั้ง Pythonzipfile.ZIP_LZMA
: วิธีนี้ใช้อัลกอริธึม LZMA เพื่อบีบอัดไฟล์เก็บถาวร LZMA สามารถให้อัตราส่วนการบีบอัดที่ดีกว่า DEFLATE และ BZIP2 โดยเฉพาะสำหรับไฟล์ขนาดใหญ่ แต่โดยปกติแล้วจะช้ากว่า หากต้องการใช้การบีบอัด LZMA คุณต้องมีโมดูลlzma
ในการติดตั้ง Python ของคุณ
หลังจากสำรวจการสร้างไฟล์ ZIP แล้ว ตอนนี้เรามาเน้นที่การแยกไฟล์บีบอัดออกจากไฟล์เก็บถาวร
แยกไฟล์จากไฟล์ ZIP
ส่วนนี้จะเจาะลึกเกี่ยวกับการดึงไฟล์จากไฟล์ ZIP ซึ่งช่วยให้สามารถเข้าถึงข้อมูลต้นฉบับที่ไม่มีการบีบอัดได้
ในตัวอย่างด้านล่าง ฟังก์ชัน extract_zip_archive
รับ input_file
(ไฟล์ ZIP) และ output_folder
(ปลายทางสำหรับไฟล์ที่แตกออกมา) เป็นอาร์กิวเมนต์ ฟังก์ชันนี้เปิดไฟล์ ZIP ในโหมดอ่าน 'r'
และแยกไฟล์ทั้งหมดไปยังโฟลเดอร์เอาต์พุตที่ระบุ
import zipfile def extract_zip_archive(input_file, output_folder): with zipfile.ZipFile(input_file, 'r') as zip_file: zip_file.extractall(output_folder) def main(): input_file = 'example_archive.zip' output_folder = 'extracted_files' extract_zip_archive(input_file, output_folder) if __name__ == "__main__": main()
ในตัวอย่างสุดท้ายของเรา เราสาธิตวิธีการต่อท้ายไฟล์ในไฟล์ ZIP ที่มีอยู่ เพื่อให้สามารถขยายเนื้อหาของไฟล์เก็บถาวรได้
การเพิ่มไฟล์ลงในไฟล์ ZIP ที่มีอยู่
เมื่อทำงานกับไฟล์ ZIP มักจำเป็นต้องแก้ไขเนื้อหาโดยการต่อท้ายไฟล์ใหม่ ในส่วนนี้ เราจะสำรวจกระบวนการเพิ่มไฟล์ลงในไฟล์ ZIP ที่มีอยู่ ซึ่งช่วยให้สามารถขยายและอัปเดตได้อย่างง่ายดาย
ในตัวอย่างด้านล่าง ฟังก์ชัน add_file_to_zip_archive
รับ input_file
(ไฟล์ที่จะเพิ่ม) และ archive_file
(ไฟล์ ZIP ที่มีอยู่) เป็นอาร์กิวเมนต์ ฟังก์ชันนี้เปิดไฟล์ ZIP ในโหมดต่อท้าย 'a'
ด้วยวิธีการบีบอัด ZIP_DEFLATED
และเขียนไฟล์อินพุตลงในไฟล์เก็บถาวร โดยคงชื่อฐานไว้
import zipfile import os def add_file_to_zip_archive(input_file, archive_file): with zipfile.ZipFile(archive_file, 'a', zipfile.ZIP_DEFLATED) as zip_file: zip_file.write(input_file, os.path.basename(input_file)) def main(): input_file = 'new_file.txt' archive_file = 'example_archive.zip' add_file_to_zip_archive(input_file, archive_file) if __name__ == "__main__": main()
ด้วยตัวอย่างนี้ เราจะสรุปการสำรวจไลบรารี zipfile
ของเรา และตอนนี้จะเปลี่ยนไปใช้การตรวจสอบไลบรารี tarfile
สำหรับการจัดการไฟล์เก็บถาวร TAR
เรียนรู้การเก็บถาวรด้วยไลบรารี tarfile ของ Python
ไฟล์เก็บถาวร TAR ย่อมาจาก "tape archive" เป็นรูปแบบไฟล์ที่รวมไฟล์และไดเร็กทอรีหลายไฟล์ไว้ในไฟล์เดียวโดยยังคงรักษาโครงสร้างไฟล์และข้อมูลเมตาไว้ โดยทั่วไปแล้วไฟล์เก็บถาวร TAR จะใช้สำหรับการสำรองและแจกจ่ายไฟล์ ทำให้ง่ายต่อการจัดกลุ่มไฟล์เพื่อการขนส่งหรือการจัดเก็บ
ไลบรารี tarfile ใน Python เป็นโมดูลในตัวที่ช่วยให้คุณสามารถสร้าง อ่าน และแยกไฟล์เก็บถาวร TAR ได้อย่างง่ายดาย รองรับรูปแบบการบีบอัดเช่น gzip, bzip2 และ lzma ซึ่งสามารถใช้กับ TAR เพื่อสร้างไฟล์บีบอัดที่มีนามสกุลเช่น .tar.gz
, .tar.bz2
หรือ .tar.xz
เช่นเดียวกับการสำรวจไลบรารี zipfile เราจะเริ่มต้นด้วยการตรวจสอบข้อมูลเมตาของไฟล์ tar ต่อไปนี้ เราจะเจาะลึกในการสร้างไฟล์เก็บถาวร TAR แยกไฟล์ออกจากไฟล์ และสุดท้ายคือการเพิ่มไฟล์ลงในไฟล์เก็บถาวร TAR ที่มีอยู่
การอ่านข้อมูลเมตาจากไฟล์เก็บถาวร TAR
ตัวอย่างนี้ จะสาธิตวิธีการอ่านข้อมูลเมตาจากไฟล์เก็บถาวร tar โดยใช้ไลบรารี tarfile
ในตัวของ Python ข้อมูลเมตาประกอบด้วยข้อมูล เช่น ชื่อไฟล์ ขนาดไฟล์ และเวลาที่แก้ไขครั้งล่าสุด
สคริปต์ประกอบด้วยสามส่วนหลัก: วิธี print_metadata
, วิธี read_tar_metadata
และวิธี main
เช่นเดียวกับไฟล์ zip เราใช้ตัวจัดการบริบทในฟังก์ชัน read_tar_metadata
import tarfile import time def print_metadata(file_info): file_name = file_info.name file_size = file_info.size last_modified = file_info.mtime last_modified_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(last_modified)) print(f"File Name: {file_name}") print(f"File Size: {file_size} bytes") print(f"Last Modified: {last_modified_str}\n") def read_tar_metadata(tar_path): with tarfile.open(tar_path, 'r') as tar_file: for file_info in tar_file.getmembers(): print_metadata(file_info) def main(): tar_path = 'meta.tgz' read_tar_metadata(tar_path) if __name__ == '__main__': main()
เมื่อเรารันตัวอย่าง มันจะสร้างผลลัพธ์ต่อไปนี้
การสร้างไฟล์เก็บถาวร TAR
ตอนนี้ เรามาสำรวจวิธีสร้างไฟล์เก็บถาวร TAR โดยใช้ไลบรารี tarfile
ใน Python กันดีกว่า การสร้างไฟล์เก็บถาวร TAR เกี่ยวข้องกับการสร้างไฟล์เก็บถาวรใหม่หรืออัปเดตไฟล์ที่มีอยู่โดยการเพิ่มหรือแก้ไขไฟล์ กระบวนการนี้มีความสำคัญอย่างยิ่งต่อการรวมไฟล์หลายไฟล์เป็นไฟล์เดียว ซึ่งเป็นประโยชน์สำหรับการจัดเก็บและการแจกจ่าย
ใน ตัวอย่าง เราใช้ฟังก์ชัน tarfile.open
กับโหมด 'w:gz'
เพื่อสร้างไฟล์เก็บถาวร TAR ที่บีบอัดโดยตรง ซึ่งโดยทั่วไปเรียกว่า tarball tarball หมายถึงไฟล์ TAR ที่ได้รับการบีบอัดเพื่อลดขนาด
import tarfile def create_gzipped_tar_archive(tar_path, file_paths): with tarfile.open(tar_path, 'w:gz') as tar_file: for file_path in file_paths: tar_file.add(file_path, arcname=file_path) def main(): tar_path = 'example.tgz' file_paths = ['file1.txt', 'file2.txt', 'file3.txt'] create_gzipped_tar_archive(tar_path, file_paths) print(f"{tar_path} created with the files: {', '.join(file_paths)}") if __name__ == '__main__': main()
ไลบรารี tarfile
ใน Python รองรับหลายโหมดสำหรับการเปิดไฟล์ TAR ด้วยอัลกอริธึมการบีบอัดที่แตกต่างกัน ตัวเลือกการบีบอัดหลัก ได้แก่ :
- การบีบอัด
gzip
: หากต้องการเปิดไฟล์ TAR ด้วยการบีบอัดgzip
ให้ใช้โหมด'w:gz'
(สำหรับการเขียน) หรือ'r:gz'
(สำหรับการอ่าน) ไฟล์เก็บถาวรผลลัพธ์จะมีนามสกุล.tar.gz
หรือ.tgz
- การบีบอัด
bzip2
: หากต้องการเปิดไฟล์ TAR ด้วยการบีบอัดbzip2
ให้ใช้โหมด'w:bz2'
(สำหรับการเขียน) หรือ'r:bz2'
(สำหรับการอ่าน) ไฟล์เก็บถาวรผลลัพธ์จะมีนามสกุล.tar.bz2
หรือ.tbz2
- การบีบอัด
lzma
(หรือเรียกอีกอย่างว่าการบีบอัดxz
): หากต้องการเปิดไฟล์ TAR ด้วยการบีบอัดlzma
ให้ใช้โหมด'w:xz'
(สำหรับการเขียน) หรือ'r:xz'
(สำหรับการอ่าน) ไฟล์เก็บถาวรผลลัพธ์จะมีนามสกุล.tar.xz
หรือ.txz
แตกไฟล์จากไฟล์เก็บถาวร TAR
ตอนนี้เราจะดึงไฟล์จากไฟล์เก็บถาวร TAR ซึ่งช่วยให้สามารถเข้าถึงข้อมูลต้นฉบับที่ไม่มีการบีบอัดได้
ในตัวอย่างด้านล่าง ฟังก์ชัน extract_tar_archive
รับ input_file
(ไฟล์เก็บถาวร TAR) และ output_folder
(ปลายทางสำหรับไฟล์ที่แตกออกมา) เป็นอาร์กิวเมนต์ ฟังก์ชั่นเปิดไฟล์เก็บถาวร TAR ในโหมดอ่าน 'r'
และแยกไฟล์ทั้งหมดไปยังโฟลเดอร์เอาต์พุตที่ระบุ
import tarfile def extract_tar_archive(tar_path, output_path): with tarfile.open(tar_path, 'r') as tar_file: tar_file.extractall(output_path) def main(): tar_path = 'example.tgz' output_path = 'extracted_files' extract_tar_archive(tar_path, output_path) print(f"Files from {tar_path} have been extracted to {output_path}") if __name__ == '__main__': main()
ตัวอย่างสุดท้ายของเราสาธิตวิธีการต่อท้ายไฟล์ในไฟล์เก็บถาวร TAR ที่มีอยู่
การเพิ่มไฟล์ไปยังไฟล์เก็บถาวร TAR ที่มีอยู่
ในตัวอย่างสุดท้ายนี้ เรากำหนดฟังก์ชัน add_file_to_tar_archive
ที่รับอาร์กิวเมนต์อินพุตสองตัว: เส้นทางของไฟล์ TAR ที่จะแก้ไข (tar_path
) และเส้นทางของไฟล์ที่จะเพิ่ม (file_path
)
เราเปิดไฟล์เก็บถาวร TAR ในโหมดผนวกภายในฟังก์ชันโดยใช้ฟังก์ชัน tarfile.open()
เราใช้คำสั่ง with
เพื่อให้แน่ใจว่าไฟล์เก็บถาวร TAR จะถูกปิดโดยอัตโนมัติหลังจากดำเนินการบล็อคโค้ด
ต่อไป เราเรียกเมธอด add()
ของอ็อบเจ็กต์ TarFile
โดยส่งผ่าน file_path
เป็นอาร์กิวเมนต์ พารามิเตอร์ arcname
ถูกตั้งค่าเป็นชื่อไฟล์ต้นฉบับในตัวอย่างนี้
import tarfile def add_file_to_tar_archive(tar_path, file_path): with tarfile.open(tar_path, 'a') as tar_file: tar_file.add(file_path, arcname=file_path) def main(): tar_path = 'example.tar' file_path = 'file4.txt' add_file_to_tar_archive(tar_path, file_path) print(f"{file_path} added to {tar_path}") if __name__ == '__main__': main()
จากตัวอย่างสุดท้ายนี้ เราได้ครอบคลุมการดำเนินการต่างๆ ที่เกี่ยวข้องกับไฟล์เก็บถาวร TAR ใน Python รวมถึงการสร้าง การแยก และการอัปเดตไฟล์เก็บถาวร
การเลือกรูปแบบการเก็บถาวรที่เหมาะสม
ในตัวอย่างต่างๆ ที่เรากล่าวถึง เราได้สาธิตวิธีการเก็บถาวรและแตกไฟล์โดยใช้ไลบรารี zipfile และ tarfile ของ Python ไลบรารีอันทรงพลังเหล่านี้ทำให้การจัดการไฟล์ ZIP และ TAR เป็นเรื่องง่าย ตอนนี้ คุณอาจสงสัยเกี่ยวกับความแตกต่างระหว่างรูปแบบไฟล์เก็บถาวรเหล่านี้ และรูปแบบใดที่เหมาะกับความต้องการของคุณมากกว่า
เมื่อเลือกระหว่างรูปแบบ ZIP และ TAR ให้พิจารณาปัจจัยต่อไปนี้:
ความเข้ากันได้: ZIP อาจเป็นตัวเลือกที่ดีกว่า หากคุณต้องการแชร์ไฟล์เก็บถาวรบนแพลตฟอร์มต่างๆ เนื่องจากมีความเข้ากันได้ในวงกว้าง
การบีบอัด: ทั้งสองรูปแบบสามารถทำงานได้ดีหากคุณต้องการการบีบอัดที่มีประสิทธิภาพ โปรดจำไว้ว่าคุณควรบีบอัดไฟล์ TAR โดยใช้เครื่องมือภายนอกเพื่อสร้าง tarball
การเก็บรักษาข้อมูลเมตา: หากการเก็บรักษาข้อมูลเมตาของไฟล์เป็นสิ่งสำคัญ TAR อาจเป็นตัวเลือกที่ดีกว่า โดยเฉพาะอย่างยิ่งเมื่อทำงานกับระบบ Unix และ Unix
การเข้าถึงแบบสุ่ม: หากคุณต้องการแยกไฟล์แต่ละไฟล์บ่อยครั้ง ZIP มอบโซลูชันที่มีประสิทธิภาพมากกว่าเนื่องจากความสามารถในการเข้าถึงแบบสุ่ม
โดยสรุป ตัวเลือกของคุณระหว่างรูปแบบ ZIP และ TAR ขึ้นอยู่กับกรณีการใช้งานและข้อกำหนดเฉพาะของคุณ ประเมินปัจจัยที่กล่าวถึงข้างต้นเพื่อพิจารณาว่ารูปแบบใดที่เหมาะกับความต้องการของคุณมากที่สุด
บทสรุป
บทความนี้ได้ให้คำแนะนำที่ครอบคลุมเกี่ยวกับวิธีการทำงานกับไฟล์เก็บถาวร ZIP และ TAR โดยใช้ไลบรารี zipfile และ tarfile ในตัวของ Python
เราได้สาธิตการดำเนินการต่างๆ รวมถึงการสร้าง การแยก และการอัปเดตไฟล์เก็บถาวรและการอ่านข้อมูลเมตาจากไฟล์ที่เก็บถาวร
แม้ว่ารูปแบบ ZIP และ TAR จะมีข้อดีที่แตกต่างกัน แต่ท้ายที่สุดแล้วทางเลือกของคุณจะขึ้นอยู่กับกรณีการใช้งานและข้อกำหนดเฉพาะของคุณ
ควรพิจารณาปัจจัยต่างๆ เช่น ความเข้ากันได้ การบีบอัด การเก็บรักษาข้อมูลเมตา และการเข้าถึงแบบสุ่มเมื่อตัดสินใจ
ด้วยการทำความเข้าใจจุดแข็งและจุดอ่อนของแต่ละรูปแบบและควบคุมพลังของไลบรารีในตัวของ Python คุณสามารถจัดการข้อมูลจำนวนมากได้อย่างมีประสิทธิภาพ เพิ่มประสิทธิภาพพื้นที่จัดเก็บข้อมูล และปรับปรุงการถ่ายโอนข้อมูลในโปรเจ็กต์ของคุณ
ตัวอย่างทั้งหมดมีอยู่ใน ไลบรารี GitHub นี้
เนื้อหาเพิ่มเติมได้ที่ PlainEnglish.io.
ลงทะเบียนเพื่อรับ จดหมายข่าวรายสัปดาห์ฟรี ของเรา ติดตามเราบน Twitter, LinkedIn, YouTube และ Discord .
สนใจที่จะขยายขนาดการเริ่มต้นซอฟต์แวร์ของคุณหรือไม่ ลองดูที่ วงจร