Làm cách nào để lưu trữ hình ảnh trên AWS S3?

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'

Làm cách nào để lưu trữ hình ảnh trên AWS S3?

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

http://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

http://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

http://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

Làm cách nào để lưu trữ hình ảnh trên AWS S3?

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;

S3 có tốt cho việc lưu trữ hình ảnh không?

Amazon S3 cung cấp dung lượng lưu trữ có thể mở rộng cho phép các doanh nghiệp lưu trữ và quản lý vô số mặt hàng trên đám mây. Nó không chỉ cung cấp dung lượng lưu trữ khổng lồ mà còn có tốc độ cực nhanh, cho phép người dùng nhanh chóng truy xuất và chia sẻ hình ảnh được lưu trữ của họ .

Làm cách nào để tải lên hình ảnh trong AWS S3 bằng Java?

Tạo khóa truy cập AWS. Thiết lập SDK AWS cho Java. Liệt kê các nhóm S3. Tạo nhóm S3. .
Tải tệp lên bộ chứa S3 với quyền mặc định
Tải tệp lên bộ chứa S3 với quyền đọc công khai
Đợi cho đến khi tệp tồn tại (đã tải lên)

Chúng tôi có thể lưu trữ hình ảnh trong AWS không?

Khi người dùng tải hình ảnh lên, bạn không thể lưu tệp cục bộ. Hình ảnh phải được lưu trữ ở vị trí mà tất cả các phiên bản EC2 đều có quyền truy cập . Hai dịch vụ AWS mà chúng ta có thể sử dụng là S3 và EFS.