Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Фронтенд
  4. NextJs
  5. Маршрут API для генерации presigned URL

Маршрут API для генерации presigned URL

Запланировано Прикреплена Закрыта Перенесена NextJs
1 Сообщения 1 Постеры 48 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • kirilljsxK Не в сети
    kirilljsxK Не в сети
    kirilljsx
    js
    написал в отредактировано
    #1

    Маршрут API для генерации presigned URL для загрузки в S3 в Next.js

    // S3 Presign Upload
    export async function POST(req: Request) {
      const { type } = await req.json();
    
      const key = `${nanoid()}.${type.split('/')[1]}`;
    
      const { url, fields } = await new Promise((res, rej) => {
        s3.createPresignedPost(
          {
            Bucket: 'your-bucket-name',
            Fields: { key },
            Expires: 60,
            Conditions: [
              ['content-length-range', 0, 5 * 1024 * 1024],
              ['starts-with', '$Content-Type', 'image/'],
            ],
          },
          (err, data) => err ? rej(err) : res(data)
        );
      });
    
      return Response.json({ url, fields, key });
    }
    

    Используется вместе с кастомным upload-хуком, чтобы безопасно загружать файлы напрямую в S3 с клиента.

    Он проверяет тип файла, генерирует уникальный ключ и возвращает presigned URL + поля, необходимые для загрузки.

    1 ответ Последний ответ
    0

    Категории

    • Главная
    • Новости
    • Фронтенд
    • Бекенд
    • Языки программирования

    Контакты

    • Сотрудничество
    • info@exlends.com
    • Наш чат
    • Наш ТГ канал

    © 2024 - 2025 ExLends, Inc. Все права защищены.

    Политика конфиденциальности
    • Войти

    • Нет учётной записи? Зарегистрироваться

    • Войдите или зарегистрируйтесь для поиска.
    • Первое сообщение
      Последнее сообщение
    0
    • Лента
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы