Завантаження файлів на Google Cloud Storage (GCS) за допомогою Django: Повний посібник

текст перекладу

Завантаження файлів у GCS з Django-додатку – це простий процес. Виконуючи ці кроки, ви зможете швидко та легко завантажити файли в GCS.

pic

ілюстрація бекенд-інженера

Під час розробки веб-застосунків за допомогою Django, часто виникає потреба керувати файлами, завантаженими користувачами.

Google Cloud Storage (GCS) — це відмінне рішення для зберігання цих файлів.

З правильною інтеграцією, Django може легко завантажувати файли безпосередньо в GCS.

Ця стаття покроково покаже, як реалізувати функцію завантаження файлів в GCS у вашому Django-додатку.

https://www.youtube.com/@halovina

Чому варто використовувати GCS?

  1. Масштабованість: GCS призначений для обробки великих обсягів даних.
  2. Доступність: GCS пропонує високу доступність.
  3. Безпека: Ваші дані зашифровані під час зберігання та передачі.
  4. Легка інтеграція: GCS надає SDK для різних мов програмування, зокрема Python, який використовується в Django.

Передумови

Перед тим, як почати, переконайтеся, що у вас є:

  1. Обліковий запис Google Cloud: Створіть обліковий запис і активуйте службу Cloud Storage.
  2. Проект Google Cloud: Створіть новий проект або виберіть існуючий.
  3. Обліковий запис служби: Створіть обліковий запис служби з роллю Storage Object Admin.
  4. JSON-ключ: Завантажте JSON-ключ для вашого облікового запису служби.
  5. Розробницьке середовище Django: Переконайтесь, що у вас встановлено розробницьке середовище Django.

Підготовка

A) Встановлення бібліотеки

Переконайтесь, що бібліотека google-cloud-storage встановлена за допомогою pip:

pip install google-cloud-storage

B) Конфігурація Google Cloud Storage

  1. Створіть кошик у Google Cloud Storage.
  2. Створіть обліковий запис служби та завантажте JSON-ключ.
  3. Збережіть JSON-ключ у безпечному каталозі та налаштуйте змінну середовища GOOGLEAPPLICATIONCREDENTIALS на шлях до цього файлу.

Код Django

import os  
from django.shortcuts import render, redirect  
from google.cloud import storage  

# Замініть на ім'я вашого кошика та шлях до файлу JSON.  
BUCKET_NAME = 'your-bucket-name'  
# Замініть на повний шлях до файлу JSON-ключа.  
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'path/to/your/key.json'  

def upload_image(request):  
 if request.method == 'POST':  
 if 'image' not in request.FILES:  
 return render(request, 'upload.html', {'error': 'Tidak ada file yang diunggah'})  

 image = request.FILES['image']  

 # Створіть клієнта для взаємодії з Google Cloud Storage  
 storage_client = storage.Client()  
 bucket = storage_client.bucket(BUCKET_NAME)  
 blob = bucket.blob(image.name)  

 # Завантажте файли в Google Cloud Storage  
 blob.upload_from_file(image)  

 return redirect('upload_image') # Перенаправити на URL з ім'ям 'upload_image'  
 else:  
 return render(request, 'upload.html')

Пояснення коду:

  1. Імпортуємо бібліотеку: Імпортуємо бібліотеку google.cloud для взаємодії з Google Cloud Storage.
  2. Конфігурація: Замініть BUCKETNAME_ на ім'я вашого кошика та налаштуйте змінну середовища GOOGLEAPPLICATIONCREDENTIALS на шлях до JSON-ключа.
  3. Подання
    Перевірка запиту: Перевіряємо, чи є завантажений файл.
    Створення клієнта: Створюємо клієнта для взаємодії з Google Cloud Storage.
    Завантаження файлу: Завантажуємо файл у вказаний кошик.
    Перенаправлення: Перенаправляємо на ту саму сторінку.

HTML шаблон (upload.html)







 {% if error %}  

{{ error }}
    {% endif %}        {% csrf_token %}        Upload           

Шлях URL

from django.urls import path  
from . import views  

urlpatterns = [  
    path('upload/', views.upload_image, name='upload_image'),  
]

Важливе

1.
текст перекладу
Безпека: Переконайтесь, що ви зберігаєте JSON-ключ у безпечному місці і не завантажуєте його в публічні репозиторії.
2. Обробка помилок: Додайте кращу обробку помилок для випадків, таких як відсутність кошика, недостатньо прав і т. д.
3. Оптимізація: Ви можете оптимізувати розмір зображень перед їх завантаженням у Google Cloud Storage, щоб заощадити місце для зберігання.
4. Метадані: Ви можете додавати метадані до об'єктів blob для встановлення властивостей, таких як content-type, cache control і т. д.
5. Валідація: Додайте валідацію для типів завантажених файлів, щоб дозволяти лише зображення.

Хочете дізнатися більше?

Давайте обговоримо це в коментарях!

Поділіться цим з іншими друзями, якщо вважаєте, що цей туторіал корисний.

Потрібна додаткова допомога?

Не соромтесь запитувати, якщо у вас є подальші питання. Ви можете надати більше деталей про додаток, який ви намагаєтесь створити, щоб я міг запропонувати більш конкретне рішення.

Знайти мене: https://medium.com/@alfininfo/about

Перекладено з: Upload Files to Google Cloud Storage (GCS) with Django: The Complete Guide

Leave a Reply

Your email address will not be published. Required fields are marked *