• Stars
    star
    182
  • Rank 211,154 (Top 5 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created almost 12 years ago
  • Updated over 11 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Amazon S3 multipart file upload for Android, made simple

Simpl3r

Amazon S3 multipart file upload for Android, made simple

screenshot

This library provides a simple high level Android API for robust and resumable multipart file uploads using the Amazon S3 service. All the complexity of file chunking, resuming, entity tag caching and interaction with Amazon's S3 API is abstracted from the developer.

This library manages synchronous file part uploads only. Part uploads performed in parallel are generally not suitable for mobile bandwidths.

Usage

Uploads can be initiated as follows:

AmazonS3Client s3Client = new AmazonS3Client(
    new BasicAWSCredentials(YOUR_S3_ACCESS_KEY, YOUR_S3_SECRET));

File file = new File("path/to/some.file");
String s3Key = file.getPath();

// create a new uploader for this file
Uploader uploader = new Uploader(this, s3Client, YOUR_S3_BUCKETNAME, s3Key, file);
    
// register listener for upload progress updates 
uploader.setProgressListener(new UploadProgressListener() {  		
    @Override
    public void progressChanged(ProgressEvent progressEvent, 
            long bytesUploaded, int percentUploaded) {
        // broadcast/notify ...
    }
});

// initiate the upload
String urlLocation = uploader.start();

Subsequent Uploader instances or calls to start() using the same s3key will attempt to resume the upload from the beginning of the last part that was uploaded successfully. A SharedPreferences instance for the supplied Context is used to cache the part ETags, or you can supply your own. You can also supply your own part size to the Uploader, but note that the minimum for the S3 API is 5 megabytes.

This project contains a working example project which more fully demonstrates its usage.

Dependencies

This library depends upon the AWS SDK for Android, specifically the following components:

  • aws-android-sdk-<VERSION>-core.jar
  • aws-android-sdk-<VERSION>-s3.jar

Building

Run ant jar from the project directory or simply download a pre-built version from the builds directory of this GitHub repository.

Credits

Author: Jeff Gilfelt

License

Copyright 2012 readyState Software Limited

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

More Repositories

1

SystemBarTint

[DEPRECATED] Apply background tinting to the Android system UI when using KitKat translucent modes
Java
5,367
star
2

chuck

An in-app HTTP inspector for Android OkHttp clients
Java
4,670
star
3

android-viewbadger

[DEPRECATED] A simple way to "badge" any given Android view at runtime without having to cater for it in layout
Java
3,019
star
4

android-sqlite-asset-helper

An Android helper class to manage database creation and version management using an application's raw asset files
Java
2,145
star
5

android-actionbarstylegenerator

[DEPRECATED] Easily create a simple, attractive and seamless custom action bar style for your Android application
JavaScript
1,006
star
6

android-mapviewballoons

[DEPRECATED] Simple information balloon annotation for Android MapView
Java
851
star
7

android-adt-templates

A small collection of ADT templates to help quickly scaffold common Activity and UI patterns.
633
star
8

GhostLog

Android app that displays the logcat buffer in a system overlay window
Java
382
star
9

androidicons-adt-template

Android Studio / Eclipse ADT template for androidicons.com resources
190
star
10

android-resource-navigator

Chrome Extension providing enhanced resource navigation for GitHub hosted Android projects
JavaScript
170
star
11

NotificationLog

Use an expanded notification as a makeshift Android log output console
Java
160
star
12

android-protobuf-example

Google Protocol Buffer Example on Android
Java
91
star
13

ThisWayUp

Sample app for my Droidcon London 2013 talk - "This Way Up: Implementing Effective Navigation"
Java
84
star
14

android-jsonarrayadapter

An easy adapter to map JSON data to views defined in an XML layout
Java
66
star
15

android-countdown

A simple Android chronometer view that counts down to a given time
Java
32
star
16

SQLook

Examine an Android SQLite database using a client application of your choice
Python
22
star
17

RoughCut

Experimental port of Android's private video editor API
Java
16
star
18

android-sdk-samples-search

[DEPRECATED] Chrome extension that adds a 'sample code' link for class references at developer.android.com
JavaScript
15
star
19

android-geras

Android sensor feed for Geras IoT time series database
Java
11
star
20

Novocation

An attempt jar-ify location.
Java
6
star