Sample code for 30+ languages & platforms
Dart

Upload File with User-Defined Metadata

See more Amazon S3 Examples

Demonstrates how to upload a file with user-defined metadata to the Amazon S3 service.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example assumes the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  final http = CkHttp();

  // Insert your AWS keys here:
  http.awsAccessKey = 'AWS_ACCESS_KEY';
  http.awsSecretKey = 'AWS_SECRET_KEY';

  final bucketName = 'chilkat.ocean';
  final objectName = 'seahorse.jpg';
  final localFilePath = 'qa_data/jpg/seahorse.jpg';
  final contentType = 'image/jpg';

  // User-defined metadata are name/value pairs, and are added to the HTTP request header.
  // Header names must begin with "x-amz-meta-" to distinguish them from other HTTP headers.
  // Note that Amazon S3 stores user-defined metadata keys in lowercase.

  // For example, to add genus=Hippocampus, we do this:
  http.setRequestHeader('x-amz-meta-genus', 'Hippocampus');

  // Add a few more user-metadata key pairs.
  http.setRequestHeader('x-amz-meta-species', 'big-belly seahorse');
  http.setRequestHeader('x-amz-meta-habitat', 'shallow tropical and temperate waters');

  try {
    http.s3UploadFile(localFilePath, contentType, bucketName, objectName);
    print('File uploaded.');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
  }
}