Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn các bước để lưu trữ hình ảnh HIT của bạn bằng Amazon S3. Hướng dẫn này giả định rằng bạn đã thoải mái đưa hình ảnh vào HIT của mình nhưng cần một nơi để lưu trữ chúng. Nếu bạn không chắc chắn về cách đưa hình ảnh vào HIT của mình, vui lòng đọc bài đăng trên blog này trước
Giới thiệu về Amazon S3
Amazon S3 là một dịch vụ lưu trữ đám mây trực tuyến từ Amazon Web Services [AWS]. Nó cho phép bạn lưu trữ, truy xuất và liên kết đến các tệp
Có hai khái niệm quan trọng đối với S3. Đối tượng và Xô. Đối tượng là các tệp bạn lưu trữ. Chúng có thể là bất kỳ loại tệp nào nhưng đối với hướng dẫn này, chúng tôi sẽ sử dụng hình ảnh. Xô là một vị trí trong S3 mà bạn kiểm soát để chứa các đối tượng. Hãy nghĩ về một thùng giống như một thư mục trên máy tính — ngoại trừ trên máy chủ của AWS. S3 hoạt động với tài khoản AWS của bạn và cho phép bạn lưu trữ miễn phí tối đa 5 GB dữ liệu. Để biết thêm thông tin về mức sử dụng dữ liệu, hãy tham khảo hướng dẫn về bậc miễn phí của AWS
Ví dụ, hình ảnh này của chú chó Abbey [tu viện. jpg] được lưu trữ trong vùng lưu trữ S3 mà chúng tôi đã tạo có tên là 'mturk-s3-demo'
S3Fox giống như một giấc mơ trở thành sự thật sau khi tìm hiểu về API S3. Sử dụng S3Fox, tôi có thể dễ dàng thử nghiệm dịch vụ S3 để tìm hiểu cách thức hoạt động của nó thay vì dành thời gian vật lộn với các lệnh gọi API S3 phức tạp trong môi trường phát triển. Thật đáng tiếc khi Amazon không cung cấp một công cụ như thế này để giúp mọi người hiểu dịch vụ S3 là gì và cách thức hoạt động của nó
Dù sao đi nữa, mục tiêu của tôi là sử dụng S3 làm dịch vụ lưu trữ hình ảnh. Tôi đã bắt đầu bằng cách tải lên toàn bộ thư mục hình ảnh bằng S3Fox. Tôi gặp một vài sự cố khi S3Fox bị lỗi một cách bí ẩn giữa quá trình chuyển, buộc tôi phải thoát hoàn toàn khỏi Firefox. May mắn thay, S3Fox cũng có hỗ trợ đồng bộ hóa thư mục, vì vậy tôi chỉ cần khởi động lại toàn bộ quá trình chuyển và yêu cầu nó bỏ qua tất cả các tệp đã có trong S3. Sau một vài lần khởi động lại, tất cả các tệp đã được tải lên thành công. Sau đó, tôi đã cấp quyền truy cập ẩn danh cho toàn bộ thư mục và tất cả nội dung của nó. Điều này đã hiển thị một cách hiệu quả tất cả các hình ảnh đã tải lên thông qua URL trang web S3 công khai
//s3.amazonaws.com/
Tất cả nội dung S3 phải đi vào cái mà Amazon gọi là "Nhóm". Tên nhóm phải là duy nhất trên toàn cầu và bạn chỉ có thể tạo tối đa 100 Nhóm cho mỗi tài khoản. Thật dễ hiểu tại sao khi bạn tạo phần tiếp theo của URL
//s3.amazonaws.com/codinghorrorimg/
Mỗi Nhóm có thể chứa số lượng "Đối tượng" không giới hạn với kích thước cơ bản không giới hạn, với bao nhiêu siêu dữ liệu cặp khóa-giá trị tùy ý mà bạn muốn đính kèm. Các đối tượng mặc định có quyền truy cập riêng tư, nhưng chúng có danh sách kiểm soát quyền truy cập rõ ràng [chỉ dành cho tài khoản Amazon] và bạn có thể đặt chúng ở chế độ công khai. Khi chúng tôi đã thêm một Đối tượng, nếu chúng tôi cấp quyền đọc công khai cho đối tượng đó, thì chúng tôi có thể truy cập nó thông qua URL trang web/Nhóm/Đối tượng hoàn chỉnh
//s3.amazonaws.com/codinghorrorimg/codinghorror-bandwidth-usage.png
Không có khái niệm về thư mục trong S3. Bạn chỉ có thể mô phỏng cấu trúc thư mục bằng cách thêm các Đối tượng có tên phức tạp như subfolder/myfile.txt
. Và bạn không thể đổi tên Nhóm hoặc Đối tượng, theo như tôi có thể nói. Nhưng ít nhất tôi có thể kiểm soát tên tệp chính xác, điều mà tôi không thể làm với bất kỳ dịch vụ lưu trữ hình ảnh nào khác
Trong thử nghiệm của mình, tôi đã tải lên toàn bộ nội dung của thư mục /images của mình hai lần. Điều đó tiêu tốn của tôi một con số khổng lồ hai xu theo sao kê tài khoản S3 thời gian thực của tôi
Nó gần giống như thanh toán vi mô đang hoạt động
S3 có thể sẽ khiến tôi tốn kém hơn một chút so với tài khoản "Không giới hạn" $25/năm có sẵn trên các trang chia sẻ ảnh cá nhân phổ biến. Với S3, không còn ảo tưởng về việc sử dụng băng thông không giới hạn mà không bị giới hạn bởi chi phí. Và các trang web chia sẻ ảnh và hình ảnh cá nhân thường bị chặn bởi các mạng công ty, điều này có ý nghĩa nếu bạn xem xét mục đích dự kiến của chúng. chia sẻ hình ảnh cá nhân một cách không chính thức. S3 là một lựa chọn lưu trữ hình ảnh chuyên nghiệp hơn;