Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Nếu đang dùng app web Django, bạn cần phải xử lý hiệu quả nội dung tĩnh và tệp tin đa phương tiện do người dùng tải lên. AWS S3 Bucket sẽ giúp bạn làm điều đó trong Django dễ dàng.

Amazon Web Services (AWS) Simple Storage Service (S3) Bucket là một giải pháp thay thế để lưu trữ các tệp đa phương tiện và tĩnh. Bằng cách tích hợp S3 với Django, bạn có thể giảm tải gánh nặng quản lý tệp trên máy chủ , giảm tải và đảm bảo phân phối nội dung nhanh hơn, đáng tin cậy hơn.
Nếu chưa có tài khoản, hãy tới trang AWS để tạo tài khoản mới.
Tài khoản AWS mới có quyền truy cập miễn phí 5GB lưu trữ chuẩn S3 mỗi tháng trong một năm.

AWS cung cấp một dịch vụ tên IAM (Identity and Access Management). Điều này cho phép bạn tạo một tài khoản riêng cho người hoặc ứng dụng cụ thể cần tương tác với các dịch vụ AWS.
Bạn có thể gán các cấp độ phân quyền khác nhau cho người dùng IAM, đại diện cho cá nhân hoặc ứng dụng tương tác với các dịch vụ AWS đã tạo. Với người dùng IAM, bạn có thể đảm bảo mỗi người dùng chỉ có quyền truy cập tài nguyên họ cần và không nhiều hơn.
Vì mục đích bảo mật, bạn nên tạo một người dùng IAM cho dự án Django để tương tác với bucket S3. Hãy làm theo những bước này để tạo một người dùng IAM trên AWS:

Trong AWS, khóa truy cập chỉ thông tin xác thực bạn có thể dùng để xác thực và truy cập an toàn tài nguyên AWS theo chương trình. Dự án Django của bạn phải cung cấp những thông tin xác thực này để truy cập bucket S3.
Những bước sau sẽ giúp bạn tạo một khóa truy cập cho dự án:

Để dùng bucket S3 với dự án Django, hãy cài đặt những gói sau:
Bạn có thể cài những gói này vào môi trường Python ảo với trình quản lý gói Pip của Python bằng lệnh sau trong terminal:
pip install django-storages boto3
Sau khi đã cài thành công những gói này, mở file settings.py và thêm boto3 vào app đã cài.
Cuối cùng, cấu hình dự án Django để dùng bucket AWS S3. Đây là cấu hình phổ biến:
AWS_ACCESS_KEY_ID = 'AWS_ACCESS_KEY_ID '
AWS_SECRET_ACCESS_KEY = 'AWS_SECRET_ACCESS_KEY'
AWS_STORAGE_BUCKET_NAME = 'AWS_STORAGE_BUCKET_NAME'
AWS_S3_SIGNATURE_NAME = 's3v4',
AWS_S3_REGION_NAME = 'AWS_S3_REGION_NAME'
AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
AWS_S3_VERITY = True
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
Dán cấu hình trên vào trong file settings.py và thay giá trị tương ứng. Thay AWS_ACCESS_KEY_ID và AWS_SECRET_ACCESS_KEY bằng khóa truy cập và khóa truy cập bí mật bạn đã sao chép hoặc tải ban đầu. Bạn cũng nên thay đổi AWS_STORAGE_BUCKET_NAME và AWS_S3_REGION_NAME sang tên của bucket và vùng S3.
Bạn có thể lấy tên miền bằng cách điều hướng tới bucket S3 và sao chép giá trị cuối cùng ở cột AWS region.

Mẫu code sau sẽ upload file trực tiếp từ bảng admin, nhưng bạn thoải mái upload dữ liệu từ vị trí khác.
Ở đây, bạn cso một mẫu như sau:
class Post(models.Model):
title = models.CharField(max_length=225, blank=False, null=False)
content = models.TextField('Post Body', blank=False, null=False)
author = models.CharField(max_length=225, blank=False, null=False)
date_published = models.DateTimeField(auto_now=True)
image = models.ImageField(upload_to='posts')
def __str__(self):
return self.title
Đảm bảo bạn triển khai các hoạt động cần thiết như di chuyển, thêm nó vào bảng admin, tạo cửa sổ xem và những thứ cần cho dự án. Đảm bảo bạn tuân thủ quy tắc MVT của Django.
Sau khi hoàn tất, điều hướng tới bảng admin hoặc biểu mẫu đã tạo cho upload file và tải một file ảnh.
Điều hướng tới trang chính và xác nhận ảnh ở đó. Nếu có, click chuột phải vào ảnh, rồi chọn Open image in new tab. Trong tab mới chứa ảnh, bạn sẽ thấy thanh địa chỉ tham chiếu bộ chứa S3 đã tạo từ đầu:

Thêm những cấu hình sau vào file settings.py:
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
AWS_LOCATION = 'static'
Sau đó, mở Command Line Interface (CLI) và chạy lệnh:
python manage.py collectstatic --noinput
Để xác nhận mọi thứ hoạt động tốt, mở bucket S3 trong console AWS. Bạn sẽ thấy một thư mục tên static.
Thế là xong! Hi vọng bài viết hữu ích với các bạn.
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Hướng dẫn sử dụng Canva Grow tạo quảng cáo với AI
TOP phần mềm quay màn hình có hỗ trợ AI
Khóa chat trong ChatGPT: cách bật mã PIN, mở khóa và những giới hạn cần biết
4 lầm tưởng về AI trong công việc và cách kiểm chứng
Mẹo giao việc nhiều bước cho ChatGPT Agent và kịch bản bạn có thể thử
Những lời chúc đầu tuần hay cho cả 7 ngày may mắn
ChatGPT Dots là gì? Cách hoạt động, giá và những điều cần cân nhắc
Karaoke Khóc (Midi)
TOP công cụ AI viết truyện ma, truyện kinh dị hay nhất
Hướng dẫn kết nối Claude với ElevenLabs xây dựng trợ lý giọng nói
Cách sử dụng tiện ích ChatGPT trên Chrome hiệu quả
Dùng tiện ích ChatGPT trong Chrome để so sánh bảng giá và gom tab
So sánh Gemini CLI và Claude Code: Nên sử dụng CLI hỗ trợ lập trình bằng AI nào?
Các biến động (Dynamic variable) trong ElevenAgents
Cách khắc phục sự cố click chuột trái trên Windows
Cách sử dụng Adobe trong Claude tạo thiết kế
Hướng dẫn kết nối Google Docs với Claude phân tích tài liệu
Hướng dẫn ngắt kết nối ứng dụng trên Canva AI
10 nền tảng Agentic AI tốt nhất cho doanh nghiệp năm 2026
Canvas trong Google Search: Viết, lập kế hoạch và lập trình ứng dụng
Hướng dẫn cài đặt và sử dụng n8n trên Windows 11
Cách lập trình chuyên nghiệp hơn, dễ dàng hơn với tính năng Tệp trên Grok
Công thức tính diện tích hình Elip
Hướng dẫn ngắt kết nối ứng dụng trên ChatGPT
Hướng dẫn tạo đoạn hội thoại cho topic trên Twee
Bức tranh tổng quan về hỗ trợ khách hàng tích hợp AI
Cách sửa lỗi There Are Currently No Power Options Available Windows
Hướng dẫn 8 cách mở bàn phím ảo trên Windows 10
Claude Code thực sự có giá bao nhiêu?
Hướng dẫn tạo flashcard trên Canva AI