Accept GetObjectOptions in statObject (#112)

This commit is contained in:
Aditya Manthramurthy 2019-04-14 13:31:18 -07:00 committed by Harshavardhana
parent af3b75e29e
commit bd455b2f70
4 changed files with 18 additions and 16 deletions

View File

@ -273,9 +273,10 @@ getObject :: Bucket -> Object -> GetObjectOptions
getObject bucket object opts = snd <$> getObject' bucket object []
(gooToHeaders opts)
-- | Get an object's metadata from the object store.
statObject :: Bucket -> Object -> Minio ObjectInfo
statObject = headObject
-- | Get an object's metadata from the object store. It accepts the
-- same options as GetObject.
statObject :: Bucket -> Object -> GetObjectOptions -> Minio ObjectInfo
statObject b o opts = headObject b o $ gooToHeaders opts
-- | Creates a new bucket in the object store. The Region can be
-- optionally specified. If not specified, it will use the region

View File

@ -34,7 +34,7 @@ copyObjectInternal b' o srcInfo = do
sObject = srcObject srcInfo
-- get source object size with a head request
oi <- headObject sBucket sObject
oi <- headObject sBucket sObject []
let srcSize = oiSize oi
-- check that byte offsets are valid if specified in cps

View File

@ -404,11 +404,12 @@ listIncompleteParts' bucket object uploadId maxParts partNumMarker = do
]
-- | Get metadata of an object.
headObject :: Bucket -> Object -> Minio ObjectInfo
headObject bucket object = do
headObject :: Bucket -> Object -> [HT.Header] -> Minio ObjectInfo
headObject bucket object reqHeaders = do
resp <- executeRequest $ defaultS3ReqInfo { riMethod = HT.methodHead
, riBucket = Just bucket
, riObject = Just object
, riHeaders = reqHeaders
}
let

View File

@ -207,7 +207,7 @@ basicTests = funTestWithBucket "Basic tests" $
fPutObject bucket object inputFile defaultPutObjectOptions
step "get metadata of the object"
res <- statObject bucket object
res <- statObject bucket object defaultGetObjectOptions
liftIO $ (oiSize res) @?= 0
step "delete object"
@ -650,7 +650,7 @@ putObjectContentTypeTest = funTestWithBucket "putObject contentType tests" $
}
-- retrieve obj info to check
oi <- headObject bucket object
oi <- headObject bucket object []
let m = oiMetadata oi
step "Validate content-type"
@ -661,7 +661,7 @@ putObjectContentTypeTest = funTestWithBucket "putObject contentType tests" $
pooContentEncoding = Just "identity"
}
oiCE <- headObject bucket object
oiCE <- headObject bucket object []
let m' = oiMetadata oiCE
step "Validate content-encoding"
@ -686,7 +686,7 @@ putObjectContentLanguageTest = funTestWithBucket "putObject contentLanguage test
}
-- retrieve obj info to check
oi <- headObject bucket object
oi <- headObject bucket object []
let m = oiMetadata oi
step "Validate content-language"
@ -722,7 +722,7 @@ putObjectStorageClassTest = funTestWithBucket "putObject storageClass tests" $
removeObject bucket object
-- retrieve obj info to check
oi' <- headObject bucket object'
oi' <- headObject bucket object' []
let m' = oiMetadata oi'
step "Validate x-amz-storage-class rrs"
@ -757,7 +757,7 @@ copyObjectTests = funTestWithBucket "copyObject related tests" $
(etag, modTime) <- copyObjectSingle bucket objCopy srcInfo []
-- retrieve obj info to check
oi <- headObject bucket objCopy
oi <- headObject bucket objCopy []
let t = oiModTime oi
let e = oiETag oi
let s = oiSize oi
@ -798,7 +798,7 @@ copyObjectTests = funTestWithBucket "copyObject related tests" $
void $ completeMultipartUpload bucket copyObj uid parts
step "verify copied object size"
oi' <- headObject bucket copyObj
oi' <- headObject bucket copyObj []
let s' = oiSize oi'
liftIO $ (s' == mb15) @? "Size failed to match"
@ -822,7 +822,7 @@ copyObjectTests = funTestWithBucket "copyObject related tests" $
copyObject defaultDestinationInfo {dstBucket = bucket, dstObject = cp} defaultSourceInfo {srcBucket = bucket, srcObject = src}
step "verify uploaded objects"
uploadedSizes <- fmap oiSize <$> forM copyObjs (headObject bucket)
uploadedSizes <- fmap oiSize <$> forM copyObjs (\o -> headObject bucket o [])
liftIO $ (sizes == uploadedSizes) @? "Uploaded obj sizes failed to match"
@ -844,7 +844,7 @@ copyObjectTests = funTestWithBucket "copyObject related tests" $
}
step "verify uploaded object"
cSize <- oiSize <$> headObject bucket copyObj
cSize <- oiSize <$> headObject bucket copyObj []
liftIO $ (cSize == 10 * 1024 * 1024) @? "Uploaded obj size mismatched!"
@ -870,7 +870,7 @@ getNPutSSECTest =
fPutObject bucket obj rFile putOpts
step "Stat object without key - should fail"
headRes <- try $ statObject bucket obj
headRes <- try $ statObject bucket obj defaultGetObjectOptions
case headRes of
Right _ -> liftIO $ assertFailure "Cannot perform head object on encrypted object without specifying key"
Left ex@(NC.HttpExceptionRequest _ (NC.StatusCodeException rsp _))