function standardMetadataValidateBucket(params, actionImplicitDenies, log, callback) {
    const { bucketName } = params;
    return metadata.getBucket(bucketName, log, (err, bucket) => {
        if (err) {
            // if some implicit actionImplicitDenies, return AccessDenied before
            // leaking any state information
            if (actionImplicitDenies && Object.values(actionImplicitDenies).some(v => v === true)) {
                return callback(errors.AccessDenied);
            }
            log.debug('metadata getbucket failed', { error: err });
            return callback(err);
        }
        const validationError = validateBucket(bucket, params, log, actionImplicitDenies);
        return callback(validationError, bucket);
    });
}
standardMetadataValidateBucket - retrieve bucket from metadata and check if user
is authorized to access it
@param {object} params - function parameters
@param {AuthInfo} params.authInfo - AuthInfo class instance, requester's info
@param {string} params.bucketName - name of bucket
@param {string} params.requestType - type of request
@param {string} params.request - http request object
@param {boolean} actionImplicitDenies - identity authorization results
@param {RequestLogger} log - request logger
@param {function} callback - callback
@return {undefined} - and call callback with params err, bucket md