Check upload policy less frequently

yeah `uploadFuture.get()` should rethrow it wrapped in an ExecutionException