Пример #1
0
bool deleteAllEntries(S3ConnectionPtr aS3, std::string aBucketName)
{
  ListBucketResponsePtr lListBucket;
  ListBucketResponse::Object lObject;
  std::string lMarker;
  std::cout << "Start deleting items from bucket " << aBucketName << std::endl;
  try {
    uint32_t lCtr = 0;
    do
    {
      lListBucket = aS3->listBucket(aBucketName, "", lMarker);
      lListBucket->open();
      while (lListBucket->next(lObject)) {
        DeleteResponsePtr lDelete = aS3->del(aBucketName, lObject.KeyValue);
        if(lCtr < 25){
        std::cout << "   deleted item with key " << lObject.KeyValue << std::endl;
        }else if( lCtr == 25){
          std::cout << "   deleting more items..." << std::endl;
        }else if (lCtr % 50 == 0){
          std::cout << " still deleting more items..." << std::endl;
        }
        ++lCtr;
        lMarker = lObject.KeyValue;
      }
      lListBucket->close();
    } while (lListBucket->isTruncated());
    std::cout << "deleted " << lCtr << " items" << std::endl;
  } catch (ListBucketException &e) {
    std::cerr << e.what() << std::endl;
    return false;
  }
  return true;
}
Пример #2
0
bool
del(S3ConnectionPtr aS3, std::string aBucketName, std::string aKey, std::string aPrefix)
{
  ListBucketResponsePtr lListBucket;
  ListBucketResponse::Object lObject;

  std::string lMarker;
  try {
    if (aKey.size() != 0) {
      DeleteResponsePtr lDel = aS3->del(aBucketName, aKey);
    } else {
      DeleteAllResponsePtr lDel = aS3->deleteAll(aBucketName, aPrefix);
    }
  } catch (S3Exception &e) {
    std::cerr << e.what() << std::endl;
    return false;
  }
  return true;
}