Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.23.1

cloudinary_public

Este pacote permite que você carregue arquivos de mídia diretamente no Cloudinary, sem expor sua apiKey ou secretKey.

AndroidiOSmacOSWindowsLinux
Downloads em 30 dias
3,8 mil
Curtidas
128
Pontos Pub
150

Instalar pacote

flutter pub add cloudinary_public

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

O pacote cloudinary_public permite uploads diretos de mídia para o Cloudinary a partir de aplicativos Flutter, eliminando a necessidade de expor chaves de API sensíveis. Ele gerencia a autenticação de forma segura usando presets de upload não assinados, permitindo que os clientes carreguem arquivos diretamente, mantendo a segurança do lado do servidor. Ideal para aplicações que exigem conteúdo gerado pelo usuário, como compartilhamento de fotos ou uploads de fotos de perfil. O pacote suporta múltiplas plataformas, incluindo Android, iOS, macOS, Windows e Linux.

Casos de uso

  • Envios diretos de arquivos a partir de aplicativos móveis
  • Armazenamento de conteúdo gerado pelo usuário
  • Upload de fotos de perfil
  • Gerenciamento de imagem e vídeo
  • Manipulação segura de mídia sem expor credenciais

Principais recursos

  • Nenhuma exposição de chaves de API
  • Suporte a presets de upload sem assinatura
  • Compatibilidade multiplataforma
  • Integração simples com o Cloudinary
  • Monitoramento em tempo real do progresso do upload

Indicado para

  • Aplicativos móveis com upload de mídia
  • Aplicativos que precisam de transferência segura de arquivos
  • Desenvolvedores evitando autenticação de backend
  • Projetos usando o Cloudinary para armazenamento de mídia
  • Gerenciamento de mídia somente no frontend

Considerações

  • Requer configuração de pré-configuração de upload do Cloudinary
  • Limitado a uploads sem assinatura
  • Depende do plano gratuito ou pago do Cloudinary
  • Não adequado para mídia privada ou restrita
  • Deve configurar corretamente o painel do Cloudinary

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

cloudinary_public

Build Status Coverage Status

This package allows you to upload media files directly to cloudinary, without exposing your apiKey or secretKey.

Getting started

Add the dependency cloudinary_public: ^0.23.1 to your project:

import 'package:cloudinary_public/cloudinary_public.dart';

final cloudinary = CloudinaryPublic('CLOUD_NAME', 'UPLOAD_PRESET', cache: false);

Check https://cloudinary.com/documentation/upload_images#unsigned_upload on how to create an upload preset.

Using Image Picker Plugin
var image = await ImagePicker.pickImage(source: ImageSource.camera);

try {
    CloudinaryResponse response = await cloudinary.uploadFile(
        CloudinaryFile.fromFile(image.path, resourceType: CloudinaryResourceType.Image),
    );
    
    print(response.secureUrl);
} on CloudinaryException catch (e) {
  print(e.message);
  print(e.request);
}
Using Multi Image Picker Plugin
final images = await MultiImagePicker.pickImages(maxImages: 4);

List<CloudinaryResponse> uploadedImages = await cloudinary.multiUpload(
images
    .map(
      (image) => CloudinaryFile.fromFutureByteData(
        image.getByteData(),
        identifier: image.identifier,
      ),
    )
    .toList(),
);

print(uploadedImages[0].secureUrl);

Image Transformation

// CloudinaryImage
final cloudinaryImage = CloudinaryImage('https://res.cloudinary.com/demo/image/upload/front_face.png');
// or using the image public id
final cloudinaryImage = cloudinary.getImage('front_face');

final String url = cloudinaryImage.transform().width(150).height(150).gravity('face').crop('thumb').generate();
// or using the shortcut
final String url = cloudinaryImage.thumbnail(width: 150, height: 150).generate();


// Chain example
final url = cloudinaryImage.transform()
    .width(150)
    .height(150)
    .gravity('face')
    .crop('thumb')
    .chain()
    .radius(20)
    .chain()
    .effect('sepia')
    .chain()
    .overlay(cloudinary.getImage('cloudinary_icon'))
    .gravity('south_east')
    .x(5)
    .y(5)
    .width(50)
    .opacity(60)
    .effect('brightness:200')
    .chain()
    .angle(10)
    .generate();
// generates
// https://res.cloudinary.com/demo/image/upload/c_thumb,g_face,h_150,w_150/r_20/e_sepia/e_brightness:200,g_south_east,l_cloudinary_icon,o_60,w_50,x_5,y_5/a_10/front_face.png

Upload Progress

final res = await cloudinary.uploadFile(
  CloudinaryFile.fromFile(
    _pickedFile.path,
    folder: 'hello-folder',
    context: {
      'alt': 'Hello',
      'caption': 'An example image',
    },
  ),
  onProgress: (count, total) {
    setState(() {
      _uploadingPercentage = (count / total) * 100;
    });
  },
);

Upload In Chunks

Use chunked upload when file size is more then 100 Megabytes.

By default, the chunk size is set to 20 Megabytes but can be set to as low as 5 Megabytes by using the chunk_size parameter.

Source: https://cloudinary.com/documentation/upload_images#chunked_asset_upload

final res = await cloudinary.uploadFileInChunks(
  CloudinaryFile.fromFile(
    _pickedFile.path,
    folder: 'hello-folder',
    context: {
      'alt': 'Hello',
      'caption': 'An example upload in chunks',
    },
  ),
  chunkSize: 10000000
  onProgress: (count, total) {
    setState(() {
      _uploadingPercentage = (count / total) * 100;
    });
  },
);

Categorias

Dependências

Lista de dependências 1 itens

Repositório-fonte

Projetos que usam este pacote