示例#1
0
  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);
    }
  }
示例#2
0
 @Override
 public void run() {
   while (!Thread.currentThread().isInterrupted()) {
     bucket.put();
   }
 }