Stream object transfers with shared byte throttling
This commit is contained in:
parent
a4e615096c
commit
4b044b1456
1 changed files with 1228 additions and 105 deletions
|
|
@ -10,6 +10,7 @@ import Data.Maybe (fromMaybe)
|
|||
import Data.Text (Text)
|
||||
import qualified Data.Text as T
|
||||
import qualified Data.Text.Encoding as TE
|
||||
import Nuthatch.Streaming (maximumMultipartBytes)
|
||||
import System.Environment (lookupEnv)
|
||||
import Text.Read (readMaybe)
|
||||
|
||||
|
|
@ -102,6 +103,12 @@ loadConfig = do
|
|||
maxObject <- envInteger "NUTHATCH_MAX_OBJECT_BYTES" (100 * 1024 * 1024)
|
||||
throttleRate <- envInteger "NUTHATCH_THROTTLE_BYTES_PER_SEC" (10 * 1024 * 1024)
|
||||
throttleBurst <- envInteger "NUTHATCH_THROTTLE_BURST_BYTES" (20 * 1024 * 1024)
|
||||
when (maxObject <= 0 || maxObject > maximumMultipartBytes) $
|
||||
fail "NUTHATCH_MAX_OBJECT_BYTES exceeds the supported streaming range"
|
||||
when (throttleRate <= 0 || throttleRate > luaExactIntegerMax) $
|
||||
fail "NUTHATCH_THROTTLE_BYTES_PER_SEC exceeds the exact throttle range"
|
||||
when (throttleBurst <= 0 || throttleBurst > luaExactIntegerMax) $
|
||||
fail "NUTHATCH_THROTTLE_BURST_BYTES exceeds the exact throttle range"
|
||||
listTtl <- envInteger "NUTHATCH_LIST_CACHE_TTL_SEC" 30
|
||||
searchMax <- fromInteger <$> envInteger "NUTHATCH_SEARCH_MAX_KEYS" 500
|
||||
recoveryGrace <- envInteger "NUTHATCH_RECOVERY_GRACE_SEC" 90
|
||||
|
|
@ -143,6 +150,9 @@ loadConfig = do
|
|||
, cfgRecoveryGraceSec = recoveryGrace
|
||||
}
|
||||
|
||||
luaExactIntegerMax :: Integer
|
||||
luaExactIntegerMax = 9007199254740991
|
||||
|
||||
splitHostPort :: String -> (String, String)
|
||||
splitHostPort s =
|
||||
case break (== ':') s of
|
||||
|
|
|
|||
Loading…
Reference in a new issue