All Projects → y9v → Carrierwave Base64

y9v / Carrierwave Base64

Licence: mit
Upload files encoded as base64 strings directly to carrierwave

Programming Languages

ruby
36898 projects - #4 most used programming language

Labels

Projects that are alternatives of or similar to Carrierwave Base64

Coinbin.org
₿ A Human–Friendly API Service for Crypto Currency Information.
Stars: ✭ 253 (-1.56%)
Mutual labels:  api
Http Fake Backend
Build a fake backend by providing the content of JSON files or JavaScript objects through configurable routes.
Stars: ✭ 253 (-1.56%)
Mutual labels:  api
Pysnowball
雪球股票数据接口 python edition
Stars: ✭ 256 (-0.39%)
Mutual labels:  api
Minha Receita
🏢 Sua API web para consulta de informações do CNPJ da Receita Federal
Stars: ✭ 255 (-0.78%)
Mutual labels:  api
Flysystem Dropbox
A flysystem driver for Dropbox that uses the v2 API
Stars: ✭ 254 (-1.17%)
Mutual labels:  api
Python Binance
Binance Exchange API python implementation for automated trading
Stars: ✭ 4,114 (+1500.78%)
Mutual labels:  api
React Fetches
🐙React Fetches a new way to make requests into your REST API's.
Stars: ✭ 253 (-1.56%)
Mutual labels:  api
Pymisp
Python library using the MISP Rest API
Stars: ✭ 254 (-1.17%)
Mutual labels:  api
Vk Java Sdk
Java library for working with VK API
Stars: ✭ 254 (-1.17%)
Mutual labels:  api
Django Oscar Api
RESTful JSON API for django-oscar
Stars: ✭ 251 (-2.33%)
Mutual labels:  api
Gpt 2 Cloud Run
Text-generation API via GPT-2 for Cloud Run
Stars: ✭ 254 (-1.17%)
Mutual labels:  api
Cloud Doc
一个在线文档阅读的微信小程序
Stars: ✭ 254 (-1.17%)
Mutual labels:  api
Api Security Checklist
Checklist of the most important security countermeasures when designing, testing, and releasing your API
Stars: ✭ 16,339 (+6257.59%)
Mutual labels:  api
Api autotest
接口自动化测试框架(java httpClient + testNg)
Stars: ✭ 253 (-1.56%)
Mutual labels:  api
Syno
Simple Node.js wrapper and CLI for Synology DSM REST API 5.x and 6.x.
Stars: ✭ 255 (-0.78%)
Mutual labels:  api
Atlas Of Thrones
An interactive "Game of Thrones" map powered by Leaflet, PostGIS, and Redis.
Stars: ✭ 253 (-1.56%)
Mutual labels:  api
Laravel Query Builder
Easily build Eloquent queries from API requests
Stars: ✭ 3,083 (+1099.61%)
Mutual labels:  api
Weworkapi python
official lib of wework api https://work.weixin.qq.com/api/doc
Stars: ✭ 256 (-0.39%)
Mutual labels:  api
Stripe
A comprehensive PHP Library for the Stripe.
Stars: ✭ 256 (-0.39%)
Mutual labels:  api
Httpie
As easy as /aitch-tee-tee-pie/ 🥧 Modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. https://twitter.com/httpie
Stars: ✭ 53,052 (+20542.8%)
Mutual labels:  api

Carrierwave::Base64

Gem Version Build Status Code Climate

Upload files encoded as base64 to carrierwave.

This small gem can be useful for API's that interact with mobile devices.

This gem requires Ruby 2.0 or higher.

Installation

Add the gem to your Gemfile:

gem 'carrierwave-base64'

Also add this if you need mongoid support:

gem "carrierwave-mongoid"

Usage

Mount the uploader to your model:

mount_base64_uploader :image, ImageUploader

Now you can also upload files by passing an encoded base64 string to the attribute. This also works for normal file uploads from file fields inside an HTML form, so you can safely replace mount_uploader with mount_base64_uploader to support both file input and base64 encoded input

Upload file extension

The file extension for the uploaded base64 string is identified automatically using the mime-types gem and content_type from the uploaded string.

If the required MIME type is not registered, you can add it, using MIME::Types#add:

MIME::Types.add(
  MIME::Type.new('application/icml').tap do |type|
    type.add_extensions 'icml'
  end
)

Setting the file name

You can set the file_name option to a lambda, that will return a filename without an extension, using the model instance:

mount_base64_uploader :image, ImageUploader, file_name: -> (u) { u.username }

[DEPRECATED: Settings this option to a string is deprecated, if you still want to set the filename to a fixed string, wrap it in a Proc] To set the file name for the uploaded files, use the :file_name option (without extention):

# Deprecated way:
mount_base64_uploader :image, ImageUploader, file_name: 'userpic'

# New way
mount_base64_uploader :image, ImageUploader, file_name: -> { 'userpic' }

Data format

File extention for the uploaded file is identified automatically based on the file contents. If it can't be identified automaticaly, it falls back to the content-type, specified in the data string.

data:image/jpeg;base64,(base64 encoded data)

Contributing

  1. Fork it ( https://github.com/[my-github-username]/carrierwave-base64/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].