มีวิธีการเชื่อมต่อกับที่ฝากข้อมูล Amazon S3 ด้วย FTP หรือ SFTP แทนที่จะเป็นอินเตอร์เฟสการถ่ายโอนไฟล์ Amazon ในตัวในคอนโซล AWS หรือไม่ ดูเหมือนว่านี่ไม่ใช่ตัวเลือกที่พร้อมใช้งาน
มีวิธีการเชื่อมต่อกับที่ฝากข้อมูล Amazon S3 ด้วย FTP หรือ SFTP แทนที่จะเป็นอินเตอร์เฟสการถ่ายโอนไฟล์ Amazon ในตัวในคอนโซล AWS หรือไม่ ดูเหมือนว่านี่ไม่ใช่ตัวเลือกที่พร้อมใช้งาน
คำตอบ:
มีสามตัวเลือก
ใน Amazon AWS Console ของคุณไปที่AWS Transfer สำหรับ SFTPและสร้างเซิร์ฟเวอร์ใหม่
ในหน้าเซิร์ฟเวอร์ SFTP ให้เพิ่มผู้ใช้ SFTP ใหม่ (หรือผู้ใช้)
สิทธิ์ของผู้ใช้จะถูกควบคุมโดยบทบาท AWS ที่เกี่ยวข้องในบริการ IAM (สำหรับการเริ่มต้นอย่างรวดเร็วคุณสามารถใช้นโยบายAmazonS3FullAccess )
บทบาทต้องมีความสัมพันธ์ที่เชื่อถือtransfer.amazonaws.com
ได้
สำหรับรายละเอียดโปรดดูคู่มือของฉันการตั้งค่าการเข้าถึง SFTP เพื่อ Amazon S3
เพียงติดตั้งที่ฝากข้อมูลโดยใช้s3fs
ระบบไฟล์ (หรือคล้ายกัน) กับเซิร์ฟเวอร์ Linux (เช่น Amazon EC2) และใช้เซิร์ฟเวอร์ SFTP ในตัวของเซิร์ฟเวอร์เพื่อเข้าถึงที่ฝากข้อมูล
s3fs
access-key-id:secret-access-key
ที่จะ/etc/passwd-s3fs
เพิ่มรายการการติดตั้งที่เก็บข้อมูลลงในfstab
:
<bucket> /mnt/<bucket> fuse.s3fs rw,nosuid,nodev,allow_other 0 0
สำหรับรายละเอียดโปรดดูคู่มือของฉันการตั้งค่าการเข้าถึง SFTP เพื่อ Amazon S3
หรือใช้ฟรี"ไคลเอนต์ FTP / SFTP"ใด ๆนั่นก็เป็น"ไคลเอนต์ S3"และคุณไม่มีการตั้งค่าใด ๆ บนฝั่งเซิร์ฟเวอร์ ตัวอย่างเช่นฉัน WinSCPหรือCyberduck
WinSCP ยังมีการเขียนสคริปต์และอินเตอร์เฟส. NET / PowerShellหากคุณต้องการโอนเงินอัตโนมัติ
root
จะให้permission denied
ปัญหาการโอนภายหลังเมื่อเชื่อมต่อec2-user
ผ่านทาง SFTP /mnt/<bucket>
โฟลเดอร์เป็นเจ้าของroot
และมีกลุ่มroot
ด้วย
allow_other
(หรือ-o allow_other
ถ้าติดตั้งจากบรรทัดคำสั่ง s3fs) .. ใช้ได้กับฉัน ก็ควรเขียนไฟล์เป็นสิทธิ์แบบอ่านอย่างเดียว (-o default_acl = สาธารณะอ่าน) ในกรณีของฉัน (ในถังส่วนตัว)
ปรับปรุง
S3 ตอนนี้มีบริการSFTP Gateway ที่ได้รับการจัดการอย่างเต็มรูปแบบสำหรับ S3ที่รวมกับ IAM และสามารถจัดการได้โดยใช้ aws-cli
มีเหตุผลทั้งภาคทฤษฎีและภาคปฏิบัติเหตุใดจึงไม่ใช่โซลูชันที่สมบูรณ์แบบ แต่ใช้งานได้ ...
คุณสามารถติดตั้งบริการ FTP / SFTP (เช่น ProFTPD) บนเซิร์ฟเวอร์ลินุกซ์ทั้งใน EC2 หรือในศูนย์ข้อมูลของคุณเอง ... แล้วติดถังเข้าไปในระบบแฟ้มที่ FTP เซิร์ฟเวอร์ที่มีการกำหนดให้ chroot ใช้s3fs
ฉันมีไคลเอนต์ที่ให้บริการเนื้อหาจาก S3 และเนื้อหาถูกจัดเตรียมโดยบุคคลที่สามที่รองรับเฉพาะ ftp pushes ... ดังนั้นด้วยความลังเล (เนื่องจากอิมพิแดนซ์ไม่ตรงกันระหว่าง S3 และระบบแฟ้มจริง) แต่ขาด เวลาที่จะเขียนแพ็คเกจซอฟท์แวร์เซิร์ฟเวอร์เกตเวย์ FTP / S3 ที่เหมาะสม (ซึ่งฉันยังคงตั้งใจจะทำอย่างใดอย่างหนึ่งในทุกวันนี้) ฉันเสนอและปรับใช้โซลูชันนี้สำหรับพวกเขาเมื่อหลายเดือนก่อนและพวกเขาไม่ได้รายงานปัญหาใด ๆ กับระบบ
เป็นโบนัสเนื่องจาก proftpd สามารถ chroot ผู้ใช้แต่ละคนลงในโฮมไดเร็กตอรี่ของตัวเองและ "แกล้ง" (เท่าที่ผู้ใช้สามารถบอกได้) ว่าไฟล์ที่ผู้ใช้ proftpd เป็นเจ้าของนั้นเป็นของจริงโดยผู้ใช้ที่เข้าสู่ระบบ "ไดเรกทอรีย่อย" ของที่เก็บข้อมูลและทำให้ไฟล์ของผู้ใช้อื่นไม่สามารถเข้าถึงได้
มีปัญหากับการกำหนดค่าเริ่มต้นอย่างไรก็ตาม
เมื่อคุณเริ่มรับไฟล์หลายสิบหรือหลายร้อยไฟล์ปัญหาจะปรากฏขึ้นเมื่อคุณดึงรายชื่อไดเรกทอรีเนื่องจาก ProFTPd จะพยายามอ่าน.ftpaccess
ไฟล์ซ้ำแล้วซ้ำอีกและซ้ำแล้วซ้ำอีกและสำหรับแต่ละไฟล์ในไดเรกทอรี.ftpaccess
มีการตรวจสอบเพื่อดูว่าผู้ใช้ควรได้รับอนุญาตให้ดู
คุณสามารถปิดการใช้งานพฤติกรรมนี้ใน ProFTPd แต่ฉันขอแนะนำว่าการกำหนดค่าที่ถูกต้องที่สุดคือการกำหนดค่าตัวเลือกเพิ่มเติม-o enable_noobj_cache -o stat_cache_expire=30
ใน s3fs:
-o stat_cache_expire
(ค่าเริ่มต้นไม่มีวันหมดอายุ)ระบุเวลาหมดอายุ (วินาที) สำหรับรายการใน stat cache
หากไม่มีตัวเลือกนี้คุณจะขอ S3 น้อยลง แต่คุณจะไม่ค้นพบการเปลี่ยนแปลงที่เกิดขึ้นกับวัตถุได้อย่างแน่นอนหากกระบวนการภายนอกหรืออินสแตนซ์อื่นของ s3fs กำลังแก้ไขวัตถุในที่เก็บข้อมูลด้วย ค่า "30" ในระบบของฉันถูกเลือกโดยพลการ
-o enable_noobj_cache
(ค่าเริ่มต้นถูกปิดใช้งาน)เปิดใช้งานรายการแคชสำหรับวัตถุที่ไม่มีอยู่ s3fs ต้องตรวจสอบเสมอว่าไฟล์ (หรือไดเรกทอรีย่อย) อยู่ภายใต้วัตถุ (เส้นทาง) เมื่อ s3fs ทำคำสั่งบางคำสั่งเนื่องจาก s3fs ได้รับการยอมรับไดเรกทอรีที่ไม่มีอยู่และมีไฟล์หรือไดเรกทอรีย่อยอยู่ภายใต้ตัวเอง เพิ่มคำขอ ListBucket และทำให้ประสิทธิภาพไม่ดี คุณสามารถระบุตัวเลือกนี้เพื่อประสิทธิภาพการทำงาน s3fs จดจำใน stat cache ว่าไม่มีวัตถุ (ไฟล์หรือไดเรกทอรี)
ตัวเลือกนี้ช่วยให้ s3fs จำได้ว่า.ftpaccess
ไม่มี
ไม่เกี่ยวข้องกับปัญหาประสิทธิภาพที่อาจเกิดขึ้นกับ ProFTPd ซึ่งได้รับการแก้ไขโดยการเปลี่ยนแปลงข้างต้นคุณต้องเปิดใช้งาน-o enable_content_md5
ใน s3fs ด้วย
-o enable_content_md5
(ค่าเริ่มต้นถูกปิดใช้งาน)การตรวจสอบข้อมูลที่อัพโหลดโดยไม่ต้องมีส่วนหลายส่วนหัว content-md5 เปิดใช้งานเพื่อส่งส่วนหัว "เนื้อหา -MD5" เมื่ออัปโหลดวัตถุโดยไม่มีการโพสต์แบบหลายส่วน หากเปิดใช้งานตัวเลือกนี้จะมีผลกับประสิทธิภาพของ s3fs เมื่ออัปโหลดวัตถุขนาดเล็ก เนื่องจาก s3fs จะตรวจสอบ MD5 เสมอเมื่ออัปโหลดวัตถุขนาดใหญ่ตัวเลือกนี้จะไม่ส่งผลกระทบต่อวัตถุขนาดใหญ่
นี่คือตัวเลือกที่ไม่ควรเป็นตัวเลือก - ควรเปิดใช้งานเสมอเพราะไม่ทำเช่นนี้จะข้ามการตรวจสอบความสมบูรณ์ที่สำคัญเพื่อผลประโยชน์ด้านประสิทธิภาพที่เล็กน้อย เมื่อวัตถุถูกอัปโหลดไปยัง S3 ด้วย aContent-MD5:
ส่วนหัว S3 จะตรวจสอบการตรวจสอบและปฏิเสธวัตถุหากวัตถุนั้นเสียหายระหว่างการขนส่ง อย่างไรก็ตามไม่น่าเป็นไปได้ที่ดูเหมือนว่าจะมีการสายตาสั้นเพื่อปิดใช้งานการตรวจสอบความปลอดภัยนี้
คำพูดมาจากหน้าคนของ s3fs ข้อผิดพลาดทางไวยากรณ์อยู่ในข้อความต้นฉบับ
sudo s3fs bucket-name /local-mount-folder-name/ -o iam_role=sftp-server -o allow_other -o umask=022 -o uid=501 -o gid=501
- ฉันไม่สามารถเปลี่ยนการอนุญาตใด ๆ ในโฟลเดอร์ในโฟลเดอร์เมานต์ S3 เมื่อมันถูกสร้างขึ้น
คำตอบจากปี 2014 สำหรับผู้ที่ลงคะแนนให้ฉัน:
ทีนี้ S3 ไม่ใช่ FTP มีลูกค้ามากมายที่รองรับ S3 อย่างไรก็ตาม
ค่อนข้างมากทุกไคลเอนต์ FTP ที่โดดเด่นบน OS X ได้รับการสนับสนุนรวมถึงการส่งและCyberduck Cyberduck
หากคุณบน Windows, ดูที่CyberduckหรือCloudBerry
อัปเดตคำตอบสำหรับปี 2019:
AWS เพิ่งเปิดตัวAWS Transfer สำหรับบริการSFTPซึ่งอาจทำสิ่งที่คุณต้องการ
หรือหมุนอินสแตนซ์ Linux สำหรับSFTP Gatewayในโครงสร้างพื้นฐาน AWS ของคุณที่บันทึกไฟล์ที่อัปโหลดไปยังที่เก็บ Amazon S3 ของคุณ
สนับสนุนโดยThorntech
Filezilla เพิ่งเปิดตัวไคลเอนต์ FTP รุ่น Proของพวกเขา มันเชื่อมต่อกับ S3 S3 ใน FTP ที่คล่องตัวเหมือนประสบการณ์ ฉันใช้มันเอง (ไม่มีส่วนเกี่ยวข้องใด ๆ ) และมันใช้งานได้ดี
ขั้นแรกตรวจสอบให้แน่ใจว่าผู้ใช้ AWS ของคุณที่มีสิทธิ์การเข้าถึง S3 ได้สร้าง“ รหัสคีย์การเข้าถึง” แล้ว คุณต้องรู้ "รหัสลับการเข้าถึง" คีย์การเข้าถึงถูกสร้างและจัดการในหน้าผู้ใช้ของ IAM Management Console
ตรวจสอบให้แน่ใจว่าได้เลือกโหนดไซต์ใหม่
บนโหนดไซต์ใหม่เลือกโปรโตคอล Amazon S3
ป้อนรหัสการเข้าถึงของผู้ใช้ AWS และรหัสการเข้าถึงลับ
บันทึกการตั้งค่าไซต์ของคุณโดยใช้ปุ่มบันทึก
เข้าสู่ระบบโดยใช้ปุ่มเข้าสู่ระบบ
Amazon ได้เปิดตัวบริการ SFTP สำหรับ S3 แต่พวกเขาทำเพียง SFTP (ไม่ใช่ FTP หรือ FTPES) และพวกเขาสามารถเป็นค่าใช้จ่ายต้องห้ามขึ้นอยู่กับสถานการณ์ของคุณ
ฉันเป็นผู้ก่อตั้งDocEvent.ioและเราให้บริการ FTP / S เกตเวย์สำหรับที่เก็บข้อมูล S3 ของคุณโดยไม่ต้องปั่นเซิร์ฟเวอร์หรือกังวลเรื่องโครงสร้างพื้นฐาน
นอกจากนี้ยังมี บริษัท อื่น ๆ ที่ให้บริการเซิร์ฟเวอร์ FTP แบบสแตนด์อโลนที่คุณจ่ายตามเดือนที่สามารถเชื่อมต่อกับที่ฝากข้อมูล S3 ผ่านการกำหนดค่าซอฟต์แวร์ตัวอย่างเช่นbrickftp.com brickftp.com
สุดท้ายก็ยังมีบาง AWS ตลาดปพลิเคชันที่จะช่วยให้สามารถ, ที่นี่คือการเชื่อมโยงการค้นหา อินสแตนซ์หมุนวนเหล่านี้จำนวนมากในโครงสร้างพื้นฐานของคุณเอง - ซึ่งหมายความว่าคุณจะต้องจัดการและอัพเกรดอินสแตนซ์ด้วยตัวคุณเองซึ่งอาจยากต่อการบำรุงรักษาและกำหนดค่าในช่วงเวลาหนึ่ง
ตามที่ผู้โพสต์คนอื่น ๆ ระบุไว้มีข้อ จำกัด บางประการกับบริการ AWS Transfer สำหรับ SFTP คุณต้องจัดความต้องการอย่างใกล้ชิด ตัวอย่างเช่นไม่มีโควต้ารายการที่อนุญาต / บัญชีดำข้อ จำกัด ประเภทไฟล์และการเข้าถึงที่ไม่ใช่คีย์จำเป็นต้องใช้บริการภายนอก นอกจากนี้ยังมีค่าใช้จ่ายที่เกี่ยวข้องกับการจัดการผู้ใช้และ IAM ซึ่งอาจทำให้เกิดความเจ็บปวดในระดับ
เราใช้SFTP S3 Proxy Gateway มานานประมาณ 5 ปีแล้วสำหรับลูกค้าของเรา โซลูชันหลักถูกรวบรวมไว้ในคอลเลกชันของบริการ Docker และปรับใช้ในทุกสิ่งที่ต้องการแม้ในสถานที่หรือเซิร์ฟเวอร์การพัฒนาท้องถิ่น กรณีใช้งานของเราแตกต่างกันเล็กน้อยเนื่องจากโซลูชันของเราเน้นการประมวลผลข้อมูลและท่อเทียบกับการแบ่งปันไฟล์ ในตัวอย่าง Salesforce ลูกค้าจะใช้ SFTP เป็นวิธีการขนส่งที่ส่งอีเมลซื้อข้อมูล ... ไปยังจุด SFTP / S3 สิ่งนี้ถูกแมปคีย์วัตถุใน S3 เมื่อมาถึงข้อมูลจะถูกหยิบขึ้นประมวลผลส่งและโหลดไปยังคลังสินค้า นอกจากนี้เรายังมีข้อกำหนดการตรวจสอบที่มีนัยสำคัญพอสมควรสำหรับการถ่ายโอนแต่ละครั้งสิ่งที่บันทึกของ Cloudwatch สำหรับ AWS ไม่ได้จัดเตรียมไว้ให้
ดังที่คนอื่น ๆ ได้กล่าวถึงการกลิ้งตัวคุณเองก็เป็นตัวเลือกเช่นกัน การใช้ AWS Lightsail คุณสามารถตั้งค่าคลัสเตอร์พูดได้ 4, จาก $ 10 2GB อินสแตนซ์โดยใช้ Route 53 หรือ ELB
โดยทั่วไปเป็นเรื่องดีที่ได้เห็น AWS เสนอบริการนี้และฉันคาดหวังว่ามันจะเติบโตขึ้นเมื่อเวลาผ่านไป อย่างไรก็ตามขึ้นอยู่กับกรณีการใช้งานของคุณโซลูชันทางเลือกอาจเหมาะสมกว่า