Skip to content
Snippets Groups Projects
Unverified Commit 2dac02e9 authored by Xuty's avatar Xuty Committed by GitHub
Browse files

Merge pull request #17 from philenius/bugfix/typo-in-metadata-header

fix HTTP header for user-defined object metadata
parents 370c78ee 75d74327
Branches
Tags
No related merge requests found
......@@ -130,7 +130,7 @@ Map<String, String> prependXAMZMeta(Map<String, String> metadata) {
if (!isAmzHeader(key) &&
!isSupportedHeader(key) &&
!isStorageclassHeader(key)) {
newMetadata['X-Amz-Meta-' + key] = newMetadata[key];
newMetadata['x-amz-meta-' + key] = newMetadata[key];
newMetadata.remove(key);
}
}
......
......@@ -82,9 +82,7 @@ class BlockStream extends StreamTransformerBase<List<int>, List<int>> {
}
}
if (buffer.length != 0) {
yield buffer.toBytes();
}
yield buffer.toBytes();
}
}
......
......@@ -63,7 +63,8 @@ void main() {
test('bucketExists() returns false for a non-existent bucket', () async {
final minio = _getClient();
expect(await minio.bucketExists('non-existing-bucket-name'), equals(false));
expect(
await minio.bucketExists('non-existing-bucket-name'), equals(false));
});
test('bucketExists() fails due to wrong access key', () async {
......@@ -98,29 +99,73 @@ void main() {
group('fPutObject', () {
final bucketName = DateTime.now().millisecondsSinceEpoch.toString();
Directory tempDir;
File testFile;
final objectName = 'a.jpg';
setUpAll(() async {
tempDir = await Directory.systemTemp.createTemp();
testFile = await File('${tempDir.path}/$objectName').create();
await testFile.writeAsString('random bytes');
final minio = _getClient();
await minio.makeBucket(bucketName);
});
tearDown(() async {
tearDownAll(() async {
await tempDir.delete(recursive: true);
});
test('fPutObject() inserts content-type to metadata', () async {
final objectName = 'a.jpg';
final minio = _getClient();
await minio.fPutObject(bucketName, objectName, testFile.path);
final testFile = await File('${tempDir.path}/$objectName').create();
await testFile.writeAsString('random bytes');
final stat = await minio.statObject(bucketName, objectName);
expect(stat.metaData['content-type'], equals('image/jpeg'));
});
test('fPutObject() adds user-defined object metadata w/ prefix', () async {
final prefix = 'x-amz-meta-';
final userDefinedMetadataKey = '${prefix}user-defined-metadata-key-1';
final userDefinedMetadataValue = 'custom value 1';
final metadata = {
userDefinedMetadataKey: userDefinedMetadataValue,
};
final minio = _getClient();
await minio.fPutObject(bucketName, 'a.jpg', testFile.path);
await minio.fPutObject(bucketName, objectName, testFile.path, metadata);
final stat = await minio.statObject(bucketName, objectName);
expect(stat.metaData['content-type'], equals('image/jpeg'));
expect(
stat.metaData[userDefinedMetadataKey.substring(prefix.length)],
equals(userDefinedMetadataValue),
);
});
test('fPutObject() adds user-defined object metadata w/o prefix', () async {
final userDefinedMetadataKey = 'user-defined-metadata-key-2';
final userDefinedMetadataValue = 'custom value 2';
final metadata = {
userDefinedMetadataKey: userDefinedMetadataValue,
};
final minio = _getClient();
await minio.fPutObject(bucketName, objectName, testFile.path, metadata);
final stat = await minio.statObject(bucketName, objectName);
expect(stat.metaData[userDefinedMetadataKey],
equals(userDefinedMetadataValue));
});
test('fPutObject() with empty file', () async {
final objectName = 'empty.txt';
final emptyFile = await File('${tempDir.path}/$objectName').create();
await emptyFile.writeAsString('');
final minio = _getClient();
await minio.fPutObject(bucketName, objectName, emptyFile.path);
final stat = await minio.statObject(bucketName, objectName);
expect(stat.size, equals(0));
});
});
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment