private void respondGetObjectAndClose(HttpExchange exchange, StoredObject storedObject) throws IOException { byte[] response = storedObject.getContent(); addHeader(exchange, "ETag", "\"" + storedObject.md5HexString() + "\""); addHeader(exchange, HttpHeaders.CONTENT_TYPE, "text/plain"); respondAndClose(exchange, HttpURLConnection.HTTP_OK, response); }
private void handlePutObject(HttpExchange exchange, String bucketName, String keyName) throws IOException { if (DOUBLE_DOT_PATTERN.matcher(keyName).matches()) { respondErrorAndClose(exchange, ErrorResponse.INVALID_URI); return; } byte[] content = readRequestBodyFully(exchange); if (buckets.containsKey(bucketName)) { Bucket bucket = buckets.get(bucketName); StoredObject storedObject = new StoredObject(keyName, content); bucket.put(keyName, storedObject); addHeader(exchange, HttpHeaders.E_TAG, "\"" + storedObject.md5HexString() + "\""); respondAndClose(exchange, HttpURLConnection.HTTP_OK); } else { respondErrorAndClose(exchange, ErrorResponse.NO_SUCH_BUCKET); } }