การถ่ายโอนข้อมูลจำนวนมากระหว่างทวีป [ซ้ำกัน]


12

เป็นไปได้ซ้ำ:
วิธีฟรีในการแชร์ไฟล์ขนาดใหญ่ผ่านอินเทอร์เน็ต?
มีตัวเลือกอะไรบ้างในการถ่ายโอนไฟล์ขนาดใหญ่โดยไม่ต้องใช้อินเทอร์เน็ต

ห้องทดลองของภรรยาของฉันกำลังทำโครงการที่นี่ในสหรัฐอเมริกาโดยมีผู้ร่วมมือในสิงคโปร์ บางครั้งพวกเขาจำเป็นต้องถ่ายโอนข้อมูลภาพขนาดใหญ่จำนวนมาก (บีบอัด ~ 10GB) ข้ามทวีป ด้วยเทคโนโลยีปัจจุบันอะไรจะเป็นทางออกที่ดีสำหรับสถานการณ์การใช้งานนี้

ฉันสามารถคิดได้ไม่กี่คน แต่ไม่มีพวกเขาในอุดมคติ:

  • การเชื่อมต่อโดยตรงผ่านอินเทอร์เน็ต: อัตราการถ่ายโอนประมาณ 500KB / s ยังขาดเครื่องมือในการจัดการข้อผิดพลาด / การส่งสัญญาณซ้ำ
  • อัปโหลดไปยังเซิร์ฟเวอร์หรือบริการทั่วไปเช่น Dropbox: เจ็บปวดในการอัปโหลดสำหรับผู้ทำงานร่วมกันที่ไม่ใช่ของสหรัฐ
  • การเบิร์นดิสก์หรือการคัดลอกไปยัง HD และการจัดส่งผ่าน Courier: เวลาในการตอบสนองมีความสำคัญรวมถึงการทำงานพิเศษเพื่อทำสำเนาในเครื่อง

ข้อเสนอแนะใด ๆ

อัปเดต: ไม่มีฝ่ายใดของการทำงานร่วมกันเป็นผู้ใช้ที่เข้าใจเทคโนโลยี


ภาพในรูปหรือภาพเหมือนในไฟล์ที่แสดงถึง DVD?
Daniel Beck

ภาพมิติสูงตามที่สร้างขึ้นโดยกล้องจุลทรรศน์
Frank

1
ดังนั้นมันจึงเป็นไฟล์ที่มีขนาดใหญ่มาก ๆ ? คุณช่วยให้ข้อมูลเพิ่มเติมเกี่ยวกับการนับจำนวนไฟล์ขนาดไฟล์แยกและจำนวนการเปลี่ยนแปลงระหว่างการถ่ายโอนได้ไหม มันคือทั้งหมดของพวกเขาบางคน ฯลฯ ?
Daniel Beck

1
บาง sequencers ดีเอ็นเอได้ตัดสินใจว่าเฟดเอ็กซ์เป็นวิธีที่เร็วที่สุดที่จะส่งจำนวนมากของพวกเขาสาหัสของข้อมูลทั่วโลก
joshuahedlund

เสียงเหมือนงานสำหรับsneakernetหรือIPoAC
Naftuli Kay

คำตอบ:


20

ผมขอแนะนำให้คุณใช้rsync Rsync รองรับอัลกอริทึมการถ่ายโอนเดลต้าดังนั้นหากไฟล์ของคุณมีการเปลี่ยนแปลงเพียงบางส่วนหรือหากการถ่ายโอนก่อนหน้านี้ถูกยกเลิกอย่างผิดปกติ Rsync นั้นฉลาดพอที่จะซิงค์เฉพาะสิ่งใหม่ / ที่เปลี่ยนแปลง

มีหลายพอร์ตของ Rsync ดั้งเดิมให้กับ Windows และระบบที่ไม่รองรับ Unix อื่น ๆ ทั้งฟรีและไม่ฟรี โปรดดูบทความ Rsync Wikipediaสำหรับรายละเอียด

Rsync ผ่าน SSH ใช้กันอย่างแพร่หลายและทำงานได้ดี 10GB ในปัจจุบันมีข้อมูลค่อนข้างน้อยและคุณไม่ได้ระบุว่า "เป็นครั้งคราว" หมายถึงอะไร สัปดาห์ละครั้ง ทุกวัน? รายชั่วโมงได้อย่างไร ด้วยอัตราการถ่ายโอน 500KB / วินาทีจะใช้เวลาประมาณ 6 ชั่วโมงไม่ใช่เวลานานจริงๆ หากคุณต้องการถ่ายโอนข้อมูลบ่อยครั้งอาจเป็นการดีกว่าถ้าคุณสร้างภารกิจ cron เพื่อเริ่ม rsync โดยอัตโนมัติ


ไม่rsyncต้องการโปรโตคอลของตัวเองสำหรับ deltas ต้องการระบบที่มีความสามารถในอีกด้านหนึ่งหรือไม่
Daniel Beck

@DanielBeck: ไม่มีอะไรในเอกสารที่บอกว่า rsync บน SSH ไม่สามารถใช้ deltacopy ... โดยปกติแล้วไคลเอนต์ rsync จะเรียกใช้สำเนา rsync อื่นบนเซิร์ฟเวอร์ผ่าน ssh ดังนั้นฉันจึงไม่เห็นสาเหตุที่มันไม่ทำงาน
haimg

+1 คุณมีประเด็น นั่นทำให้ความต้องการ Linux บนเซิร์ฟเวอร์นั้น
Daniel Beck

ไม่rsync's ทำงานเดลต้าอัลกอริทึมเมื่อถ่ายโอนการบีบอัดข้อมูลแบบไบนารี ( .zipหรือ.jpg)?
Aditya

@DanielBeck: ฉันได้เพิ่มลิงก์ไปยังบทความ Wikipedia ที่มีหลายพอร์ต Windows rsync เห็นได้ชัดว่าอย่างน้อยบางคนทำงานเป็นเซิร์ฟเวอร์รวมถึง ssh ฉันไม่เคยใช้มันเลย
haimg

12

การเชื่อมต่อผ่านอินเทอร์เน็ตอาจเป็นตัวเลือกที่ใช้งานได้และโปรแกรมเช่น bittorrent นั้นเหมาะอย่างยิ่งกับจุดประสงค์นี้เพราะจะทำให้ไฟล์แตกออกเป็นชิ้นส่วนตรรกะเพื่อส่งผ่านอินเทอร์เน็ตเพื่อสร้างใหม่ที่ปลายอีกด้านหนึ่ง

Bittorrent ยังช่วยให้คุณแก้ไขข้อผิดพลาดโดยอัตโนมัติซ่อมแซมชิ้นส่วนที่เสียหายและหากมีผู้ต้องการไฟล์มากกว่านั้นพวกเขาจะได้รับประโยชน์จากความสามารถในการจัดหาไฟล์จากแหล่งต่าง ๆ มากมายเท่าที่ดาวน์โหลดมาแล้ว

คนที่ให้สิทธิ์เห็นว่ามันเป็นวิธีที่ดีในการดาวน์โหลดภาพยนตร์และเช่นนั้น แต่มันก็มีการใช้งานตามกฎหมายอีกมากมาย

ไคลเอนต์ bittorrent จำนวนมากยังมีตัวติดตามดังนั้นคุณไม่จำเป็นต้องมีเซิร์ฟเวอร์เฉพาะสำหรับโฮสต์ไฟล์


2
ขอบคุณสำหรับการป้อนข้อมูล การใช้ BitTorrent ภายในเครือข่ายทางวิชาการอาจทำให้ผู้ดูแลระบบเป็นกังวล นอกจากนี้การตั้งค่าและบำรุงรักษาเซิร์ฟเวอร์ติดตามอาจไม่ใช่เรื่องง่ายสำหรับผู้ใช้คอมพิวเตอร์ทั่วไป
Frank

2
นั่นเป็นประเด็นที่ดีห้ามใช้ bittorrent ในเครือข่ายองค์กรและเครือข่ายการศึกษาหลายแห่ง ด้วยการจัดการที่เหมาะสมแม้ว่าคุณจะสามารถตั้งค่าบัญชีขาวในเครือข่ายของผู้ใช้หรือเครื่องที่ได้รับอนุญาตให้ใช้ BitTorrent แต่นี่จะหมายถึงความสัมพันธ์ที่ใกล้ชิดกับแผนกไอทีที่เกี่ยวข้องเพื่อให้ทำงานได้อย่างถูกต้อง ดังที่ได้กล่าวไปแล้วคุณไม่จำเป็นต้องมีเซิร์ฟเวอร์เฉพาะเพราะมันสามารถสร้างขึ้นในโปรแกรมไคลเอนต์จำนวนมาก ถ้ามันไม่เหมาะกับสถานการณ์ของคุณ แต่ก็ไม่ต้องกังวลมันดูเหมือนว่าฉันจะสมเหตุสมผลเมื่อพิจารณาความต้องการของคุณ
Mokubai

หากคุณใช้ bitorrent ก็ใช้เสียง webseed เหมือนไอเดียที่ฉลาด
Journeyman Geek

(เป็นตัวอย่างของหนึ่งใน 'การใช้งานที่ถูกกฎหมายมากกว่า' ที่กล่าวถึงในคำตอบ Facebook ใช้ bittorrent เพื่อปรับใช้เว็บไซต์ 1GB binary ของพวกเขาไปยังเซิร์ฟเวอร์การผลิตหลายพันวิธีโชคไม่ดีที่เทคโนโลยีถูกทิ้งส่วนใหญ่เนื่องจากการใช้งานอย่างใดอย่างหนึ่ง)
Anton Strogonoff

6

แยกไฟล์เป็นกลุ่มเช่น 50MB (ใช้เช่นsplit) คำนวณผลรวมตรวจสอบทั้งหมด (เช่นmd5sum) อัปโหลดโดยตรงโดยใช้ FTP และไคลเอนต์ FTP ที่ยอมรับข้อผิดพลาดเช่นlftpบน Linux ถ่ายโอน chunks ทั้งหมดและไฟล์ที่มี checksums ทั้งหมด

บนไซต์ระยะไกลตรวจสอบว่าชิ้นทั้งหมดมีการตรวจสอบที่ต้องการอัปโหลดใหม่ที่ล้มเหลวและประกอบเข้ากับไฟล์ต้นฉบับ (เช่นการใช้cat)

ย้อนกลับตำแหน่งที่ตั้งของเซิร์ฟเวอร์ (ฉันโพสต์ภายใต้ข้อสันนิษฐานว่าไซต์ปลายทางระบุเซิร์ฟเวอร์และคุณเริ่มการถ่ายโอนในเครื่องเมื่อไฟล์พร้อม) ตามความจำเป็น ไคลเอนต์ FTP ของคุณไม่ควรสนใจ


ฉันเคยมีปัญหาที่คล้ายกันในอดีตและใช้งานไคลเอนต์ FTP ที่ยอมรับข้อผิดพลาดได้ ไม่มีบิตพลิกเลยการเชื่อมต่อปกติยกเลิกดังนั้นฉันสามารถข้ามการสร้างชิ้นงานและอัปโหลดไฟล์ได้ เรายังให้เช็คซัมสำหรับไฟล์ที่สมบูรณ์ในกรณีนี้


3
คุณต้องระวังแม้ว่าlftpจะไม่ยกเลิกการโอนที่กำลังดำเนินการด้วยเหตุผลใดก็ตาม ตรวจสอบให้แน่ใจว่าคุณมีพื้นที่ว่างในดิสก์เพียงพอบนไซต์ปลายทางเสมอ
Daniel Beck

3

รูปแบบของคำตอบของ Daniel Beck คือการแบ่งไฟล์เป็นชิ้นตามลำดับ 50MB ถึง 200MB และสร้างไฟล์พาริตีสำหรับทั้งชุด

ตอนนี้คุณสามารถถ่ายโอนไฟล์ (รวมถึงไฟล์พาริตี้) ด้วย FTP, SCP หรืออย่างอื่นไปยังไซต์ระยะไกลและทำการตรวจสอบหลังจากมาถึงของทั้งชุด ตอนนี้หากมีชิ้นส่วนเสียหายพวกเขาสามารถแก้ไขได้โดยไฟล์พาริตีหากมีบล็อกเพียงพอ ขึ้นอยู่กับจำนวนไฟล์ที่เสียหายและจำนวนพาริตีที่คุณสร้างขึ้น

มีการใช้ไฟล์พาริตีบน Usenet เพื่อส่งไฟล์ขนาดใหญ่ เวลาส่วนใหญ่พวกเขาจะแยกออกเป็นคลัง RAR แล้ว ไม่ใช่เรื่องแปลกที่จะส่งข้อมูลมากถึง 50 ถึง 60GB ด้วยวิธีนี้

คุณควรตรวจสอบลิงก์แรกและคุณสามารถดูQuickParซึ่งเป็นเครื่องมือที่สามารถใช้ในการสร้างไฟล์พาริตี้ตรวจสอบไฟล์ที่ดาวน์โหลดของคุณและสามารถกู้คืนไฟล์ที่เสียหายด้วยไฟล์พาริตีที่ให้มา


+1 - วิธีนี้ใช้งานได้ดีกับ usenet และไฟล์ parity สามารถซ่อมแซมข้อมูลที่หายไปอย่างน่าอัศจรรย์ ข้อเสียคือเวลาในการประมวลผลที่ต้องใช้ในการแยกและสร้างไฟล์พาริตีและเพื่อตรวจสอบพาริตีและแตกไฟล์หลังจากที่ได้รับแล้ว
deizel

1

เป็นไฟล์ขนาดใหญ่ 10GB หรือไม่ มันสามารถแบ่งได้อย่างง่ายดาย?

ฉันไม่ได้เล่นกับเรื่องนี้มาก แต่มันทำให้ฉันเป็นแนวคิดที่น่าสนใจและค่อนข้างง่ายที่อาจทำงานในสถานการณ์นี้:

http://sendoid.com/


Sendoid ค่อนข้างเจ๋ง แต่น่าเสียดายที่การอัปโหลดยังคงเจ็บปวดอยู่ จากนั้นอีกครั้งปัญหายังคงมีอยู่สำหรับทุกประเภทที่ฉันเชื่อว่าเว้นแต่คุณจะส่งจดหมาย HDD +1 เนื่องจากใช้งานง่าย
DMan

0

ทำให้ข้อมูลพร้อมใช้งานผ่านทาง ftp / http / https / sftp / ftps (ต้องการข้อมูลรับรองการเข้าสู่ระบบ) และใช้ตัวจัดการการดาวน์โหลดใด ๆในฝั่งไคลเอ็นต์

ตัวจัดการการดาวน์โหลดได้รับการออกแบบมาโดยเฉพาะเพื่อดึงข้อมูลโดยไม่คำนึงถึงข้อผิดพลาดใด ๆ ที่อาจเกิดขึ้นดังนั้นพวกเขาจึงเหมาะสมกับงานของคุณ

สำหรับเซิร์ฟเวอร์นั้นเซิร์ฟเวอร์ FTP นั้นเป็นวิธีที่ง่ายที่สุดในการตั้งค่า คุณสามารถดูรายการที่ Wikipedia HTTPS, SFTP และ FTPS อนุญาตการเข้ารหัส (ใน FTP บริสุทธิ์ / HTTP, รหัสผ่านจะถูกส่งเป็นข้อความที่ชัดเจน) แต่ SFTP / FTPS ได้รับการสนับสนุนโดยทั่วไปน้อยกว่าโดยซอฟต์แวร์ไคลเอนต์และการตั้งค่าเซิร์ฟเวอร์ HTTP / HTTPS นั้นยุ่งยาก


1
ปัญหาในการใช้ http หรือ ftp คือมีข้อผิดพลาดในการส่งคุณต้องส่งทุกอย่างอีกครั้ง rsync, bittorrent และโปรโตคอลอื่น ๆ สามารถตรวจสอบว่าไฟล์ตรงกันและส่งชิ้นส่วนที่เสียหายใหม่เท่านั้น ข้อมูลเท่าเทียมกันเช่น QuickPar สร้างสามารถช่วยได้เช่นกัน
afrazier

ทั้ง FTP และ HTTP รวมถึงความสามารถในการเริ่มต้นใหม่การถ่ายโอนเป็นส่วนขยายเพิ่มเติมซึ่งรองรับโดยเซิร์ฟเวอร์ส่วนใหญ่และตัวจัดการการดาวน์โหลดทั้งหมด
ivan_pozdeev

พวกเขาอาจทำงานต่อและในทางทฤษฎี TCP ทำให้แน่ใจว่าข้อมูลมาถึงตามลำดับและมีการตรวจสอบที่ถูกต้อง อย่างไรก็ตามทุกคนที่มีการถ่ายโอน HTTP หรือ FTP ขนาดใหญ่เสียหายได้เรียนรู้คุณค่าของโปรโตคอลที่แข็งแกร่งกว่าหรือ ECC บางประเภท
afrazier
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.