Accept GetObjectOptions in statObject (#112)
This commit is contained in:
parent
af3b75e29e
commit
bd455b2f70
@ -273,9 +273,10 @@ getObject :: Bucket -> Object -> GetObjectOptions
|
|||||||
getObject bucket object opts = snd <$> getObject' bucket object []
|
getObject bucket object opts = snd <$> getObject' bucket object []
|
||||||
(gooToHeaders opts)
|
(gooToHeaders opts)
|
||||||
|
|
||||||
-- | Get an object's metadata from the object store.
|
-- | Get an object's metadata from the object store. It accepts the
|
||||||
statObject :: Bucket -> Object -> Minio ObjectInfo
|
-- same options as GetObject.
|
||||||
statObject = headObject
|
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
|
-- | Creates a new bucket in the object store. The Region can be
|
||||||
-- optionally specified. If not specified, it will use the region
|
-- optionally specified. If not specified, it will use the region
|
||||||
|
|||||||
@ -34,7 +34,7 @@ copyObjectInternal b' o srcInfo = do
|
|||||||
sObject = srcObject srcInfo
|
sObject = srcObject srcInfo
|
||||||
|
|
||||||
-- get source object size with a head request
|
-- get source object size with a head request
|
||||||
oi <- headObject sBucket sObject
|
oi <- headObject sBucket sObject []
|
||||||
let srcSize = oiSize oi
|
let srcSize = oiSize oi
|
||||||
|
|
||||||
-- check that byte offsets are valid if specified in cps
|
-- check that byte offsets are valid if specified in cps
|
||||||
|
|||||||
@ -404,11 +404,12 @@ listIncompleteParts' bucket object uploadId maxParts partNumMarker = do
|
|||||||
]
|
]
|
||||||
|
|
||||||
-- | Get metadata of an object.
|
-- | Get metadata of an object.
|
||||||
headObject :: Bucket -> Object -> Minio ObjectInfo
|
headObject :: Bucket -> Object -> [HT.Header] -> Minio ObjectInfo
|
||||||
headObject bucket object = do
|
headObject bucket object reqHeaders = do
|
||||||
resp <- executeRequest $ defaultS3ReqInfo { riMethod = HT.methodHead
|
resp <- executeRequest $ defaultS3ReqInfo { riMethod = HT.methodHead
|
||||||
, riBucket = Just bucket
|
, riBucket = Just bucket
|
||||||
, riObject = Just object
|
, riObject = Just object
|
||||||
|
, riHeaders = reqHeaders
|
||||||
}
|
}
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|||||||
@ -207,7 +207,7 @@ basicTests = funTestWithBucket "Basic tests" $
|
|||||||
fPutObject bucket object inputFile defaultPutObjectOptions
|
fPutObject bucket object inputFile defaultPutObjectOptions
|
||||||
|
|
||||||
step "get metadata of the object"
|
step "get metadata of the object"
|
||||||
res <- statObject bucket object
|
res <- statObject bucket object defaultGetObjectOptions
|
||||||
liftIO $ (oiSize res) @?= 0
|
liftIO $ (oiSize res) @?= 0
|
||||||
|
|
||||||
step "delete object"
|
step "delete object"
|
||||||
@ -650,7 +650,7 @@ putObjectContentTypeTest = funTestWithBucket "putObject contentType tests" $
|
|||||||
}
|
}
|
||||||
|
|
||||||
-- retrieve obj info to check
|
-- retrieve obj info to check
|
||||||
oi <- headObject bucket object
|
oi <- headObject bucket object []
|
||||||
let m = oiMetadata oi
|
let m = oiMetadata oi
|
||||||
|
|
||||||
step "Validate content-type"
|
step "Validate content-type"
|
||||||
@ -661,7 +661,7 @@ putObjectContentTypeTest = funTestWithBucket "putObject contentType tests" $
|
|||||||
pooContentEncoding = Just "identity"
|
pooContentEncoding = Just "identity"
|
||||||
}
|
}
|
||||||
|
|
||||||
oiCE <- headObject bucket object
|
oiCE <- headObject bucket object []
|
||||||
let m' = oiMetadata oiCE
|
let m' = oiMetadata oiCE
|
||||||
|
|
||||||
step "Validate content-encoding"
|
step "Validate content-encoding"
|
||||||
@ -686,7 +686,7 @@ putObjectContentLanguageTest = funTestWithBucket "putObject contentLanguage test
|
|||||||
}
|
}
|
||||||
|
|
||||||
-- retrieve obj info to check
|
-- retrieve obj info to check
|
||||||
oi <- headObject bucket object
|
oi <- headObject bucket object []
|
||||||
let m = oiMetadata oi
|
let m = oiMetadata oi
|
||||||
|
|
||||||
step "Validate content-language"
|
step "Validate content-language"
|
||||||
@ -722,7 +722,7 @@ putObjectStorageClassTest = funTestWithBucket "putObject storageClass tests" $
|
|||||||
removeObject bucket object
|
removeObject bucket object
|
||||||
|
|
||||||
-- retrieve obj info to check
|
-- retrieve obj info to check
|
||||||
oi' <- headObject bucket object'
|
oi' <- headObject bucket object' []
|
||||||
let m' = oiMetadata oi'
|
let m' = oiMetadata oi'
|
||||||
|
|
||||||
step "Validate x-amz-storage-class rrs"
|
step "Validate x-amz-storage-class rrs"
|
||||||
@ -757,7 +757,7 @@ copyObjectTests = funTestWithBucket "copyObject related tests" $
|
|||||||
(etag, modTime) <- copyObjectSingle bucket objCopy srcInfo []
|
(etag, modTime) <- copyObjectSingle bucket objCopy srcInfo []
|
||||||
|
|
||||||
-- retrieve obj info to check
|
-- retrieve obj info to check
|
||||||
oi <- headObject bucket objCopy
|
oi <- headObject bucket objCopy []
|
||||||
let t = oiModTime oi
|
let t = oiModTime oi
|
||||||
let e = oiETag oi
|
let e = oiETag oi
|
||||||
let s = oiSize oi
|
let s = oiSize oi
|
||||||
@ -798,7 +798,7 @@ copyObjectTests = funTestWithBucket "copyObject related tests" $
|
|||||||
void $ completeMultipartUpload bucket copyObj uid parts
|
void $ completeMultipartUpload bucket copyObj uid parts
|
||||||
|
|
||||||
step "verify copied object size"
|
step "verify copied object size"
|
||||||
oi' <- headObject bucket copyObj
|
oi' <- headObject bucket copyObj []
|
||||||
let s' = oiSize oi'
|
let s' = oiSize oi'
|
||||||
|
|
||||||
liftIO $ (s' == mb15) @? "Size failed to match"
|
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}
|
copyObject defaultDestinationInfo {dstBucket = bucket, dstObject = cp} defaultSourceInfo {srcBucket = bucket, srcObject = src}
|
||||||
|
|
||||||
step "verify uploaded objects"
|
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"
|
liftIO $ (sizes == uploadedSizes) @? "Uploaded obj sizes failed to match"
|
||||||
|
|
||||||
@ -844,7 +844,7 @@ copyObjectTests = funTestWithBucket "copyObject related tests" $
|
|||||||
}
|
}
|
||||||
|
|
||||||
step "verify uploaded object"
|
step "verify uploaded object"
|
||||||
cSize <- oiSize <$> headObject bucket copyObj
|
cSize <- oiSize <$> headObject bucket copyObj []
|
||||||
|
|
||||||
liftIO $ (cSize == 10 * 1024 * 1024) @? "Uploaded obj size mismatched!"
|
liftIO $ (cSize == 10 * 1024 * 1024) @? "Uploaded obj size mismatched!"
|
||||||
|
|
||||||
@ -870,7 +870,7 @@ getNPutSSECTest =
|
|||||||
fPutObject bucket obj rFile putOpts
|
fPutObject bucket obj rFile putOpts
|
||||||
|
|
||||||
step "Stat object without key - should fail"
|
step "Stat object without key - should fail"
|
||||||
headRes <- try $ statObject bucket obj
|
headRes <- try $ statObject bucket obj defaultGetObjectOptions
|
||||||
case headRes of
|
case headRes of
|
||||||
Right _ -> liftIO $ assertFailure "Cannot perform head object on encrypted object without specifying key"
|
Right _ -> liftIO $ assertFailure "Cannot perform head object on encrypted object without specifying key"
|
||||||
Left ex@(NC.HttpExceptionRequest _ (NC.StatusCodeException rsp _))
|
Left ex@(NC.HttpExceptionRequest _ (NC.StatusCodeException rsp _))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user