Vibhor Jain

23 papers B 1C 2Misc 1Journal 4Unranked 15
YearRankTypeTitle / Venue / Authors
2025 conf
ECC
Vibhor Jain, Chris Wegter, Sander Stuijk, Dip Goswami
2024 conf
ECC
Vibhor Jain, Sajid Mohamed, Dip Goswami, Sander Stuijk
2024 conf
BCICTS
Randy Wolf, Vibhor Jain, Sameer Jain, Shafi Syed, Chi Zhang, Abdellatif Bellaouar, Arul Balasubramaniyan, Sujata Ghosh, Rebouh Benelbar, Liyou Lu
2023 C conf
ETFA
Devi Darshini Manickam, Sajid Mohamed, Vibhor Jain, Dip Goswami, Leonard Lensink
2023 conf
BCICTS
Prateek Kumar Sharma, Vaibhav Ruparelia, Saurabh Sirohi, Uppili S. Raghunathan, Venkat Vanukuru, Vibhor Jain
2023 conf
BCICTS
Harrison P. Lee, Nelson Sepúlveda-Ramos, Jeffrey W. Teng, Jackson P. Moody, Delgermaa Nergui, Brett L. Ringel, Zachary R. Brumbach, Alizeh Premani, Uppili S. Raghunathan, Vibhor Jain, John D. Cressler
2023 C conf
DSD
Vibhor Jain, Sajid Mohamed, Dip Goswami, Sander Stuijk
2022 conf
BCICTS
Uppili S. Raghunathan, Saurabh Sirohi, Vaibhav Ruparelia, Prateek Kumar Sharma, Dimitris P. Ioannou, Vibhor Jain, H. K. Kakara, S. Gedela, Venkat Vanukuru, P. Dongmo, C. Luce, R. Hazbun, R. Krishnasamy, J. Hwang, M. Levy, Kristin Welch, S. Liu, B. Cucci, S. Cole, J. Kantarovsky, A. Vallett, Ian McCallum-Cook, M. Yu, R. Phelps, Adam W. DiVergilio, A. Sturm, M. Peters, S. Johnson, R. Rassel, M. Lagerquist, M. Kerbaugh, K. Newton, John J. Pekarik, Qidi Liu
2022 conf
BCICTS
Alvin J. Joseph, Vibhor Jain, John J. Pekarik, Ajay Raman, Shafi Syed, Liu Hang, Ned Cahoon, Randy Wolf, Venkat Vanukuru, Elan Veeramani, Beng Woon Lim, Uppili S. Raghunathan, Qizhi Liu, Yves Ngu
2021 conf
BCICTS
Ajay Raman, Vibhor Jain, Elanchezhian Veeramani, Beng Woon Lim, Uppili S. Raghunathan, Yves Ngu, Alvin Joseph
2021 conf
BCICTS
Dimitris P. Ioannou, Uppili S. Raghunathan, Dave Brochu, Adam W. DiVergilio, Vibhor Jain, John J. Pekarik
2021 conf
BCICTS
John J. Pekarik, Vibhor Jain, Crystal Kenney, Judson Holt, Shweta Khokale, Sudesh Saroop, Jeffrey B. Johnson, Kenneth J. Stein, Viorel Ontalus, Christopher Durcan, Mona Nafari, Tayel Nesheiwat, Sangameshwar Saudari, Elahe Yarmoghaddam, Saloni Chaurasia, Alvin J. Joseph
2020 conf
BCICTS
Uppili S. Raghunathan, Pui Yee, Dave Brochu, Vibhor Jain, Harrison P. Lee, John D. Cressler, Dimitris P. Ioannou
2020 J jnl
ACM Trans. Embed. Comput. Syst.
Saurav Kumar Ghosh, Jaffer Sheriff R. C, Vibhor Jain, Soumyajit Dey
2018 conf
BCICTS
Uppili S. Raghunathan, Brian R. Wier, Zachary E. Fleetwood, Michael A. Oakley, Vibhor Jain, John D. Cressler
2018 conf
BCICTS
Saurabh Sirohi, Vibhor Jain, Ajay Raman, Bhargava Teja Nukala, Elan Veeramani, James W. Adkisson, Alvin Joseph
2018 conf
BCICTS
Alvin Joseph, Vibhor Jain, Shih Ni Ong, Randy Wolf, Suh Fei Lim, Jagar Singh
2016 J jnl
IEEE J. Solid State Circuits
James Hoffman, Jean-Roland Martin-Gosse, Stefan Shopov, Jack J. Pekarik, Renata Camillo-Castillo, Vibhor Jain, David L. Harame, Sorin P. Voinigescu
2015 conf
ASICON
Chaojiang Li, Xiaoxia Wang, Vibhor Jain, Hanyi Ding, Myra Boenke, Dawn Wang, Randy Wolf, Alvin J. Joseph
2014 J jnl
Optim. Methods Softw.
Jennifer B. Erway, Vibhor Jain, Roummel F. Marcia
2013 Misc conf
ACSSC
Jennifer B. Erway, Vibhor Jain, Roummel F. Marcia
2012 B conf
SMC
Vibhor Jain, Anand Rath, Srini Ramaswamy
2011 J jnl
IEEE J. Solid State Circuits
Munkyo Seo, Miguel Urteaga, Jonathan Hacker, Adam Young, Zach Griffith, Vibhor Jain, Richard Pierson, Petra Rowell, Anders Skalare, Alejandro Peralta, Robert Lin, David Pukala, Mark J. W. Rodwell
s3-storage/s3_test.py
← Index s3-storage/s3_test.py python
#!/usr/bin/env python3
"""
Simple script to test S3 connectivity and download.
Usage: python s3_test.py
"""

import os
import time
import tempfile
from minio import Minio
from minio.error import S3Error
from dotenv import load_dotenv

# Load environment variables
load_dotenv()

def get_minio_client():
    """Create and return a Minio client using credentials from .env file"""
    endpoint = os.getenv("S3_ENDPOINT")
    access_key = os.getenv("S3_ACCESS_KEY")
    secret_key = os.getenv("S3_SECRET_KEY")
    secure = True 
    
    print(f"Connecting to S3 endpoint: {endpoint} (secure={secure})")
    
    return Minio(
        endpoint=endpoint,
        access_key=access_key,
        secret_key=secret_key,
        secure=secure
    )

def test_connection():
    """Test basic connectivity to S3"""
    try:
        client = get_minio_client()
        
        # Try to list buckets as a basic connectivity test
        buckets = client.list_buckets()
        print(f"Successfully connected to S3. Found {len(buckets)} buckets:")
        for bucket in buckets:
            print(f"  - {bucket.name}")
        
        return client
    except Exception as e:
        print(f"Failed to connect to S3: {e}")
        return None

def test_bucket_access(client, bucket_name):
    """Test access to a specific bucket"""
    try:
        exists = client.bucket_exists(bucket_name)
        if exists:
            print(f"Bucket '{bucket_name}' exists and is accessible")
            
            # List a few objects to verify access
            count = 0
            objects = []
            for obj in client.list_objects(bucket_name, recursive=True):
                print(f"  - {obj.object_name} ({obj.size} bytes)")
                objects.append(obj)
                count += 1
                if count >= 5:
                    break
            
            print(f"Found at least {len(objects)} objects in bucket")
            return objects
        else:
            print(f"Bucket '{bucket_name}' does not exist or is not accessible")
            return []
    except Exception as e:
        print(f"Error accessing bucket '{bucket_name}': {e}")
        return []

def test_download(client, bucket_name, object_name):
    """Test downloading a specific object"""
    try:
        print(f"Attempting to download: {object_name}")
        start_time = time.time()
        
        # Create a temporary file to store the downloaded object
        with tempfile.NamedTemporaryFile(delete=False) as temp_file:
            temp_path = temp_file.name
        
        # Download the object
        client.fget_object(bucket_name, object_name, temp_path)
        
        # Check if the file was downloaded successfully
        file_size = os.path.getsize(temp_path)
        elapsed_time = time.time() - start_time
        
        print(f"Download successful: {file_size} bytes in {elapsed_time:.2f} seconds")
        print(f"Average download speed: {file_size/elapsed_time/1024:.2f} KB/s")
        
        # Clean up
        os.unlink(temp_path)
        return True
    except S3Error as e:
        print(f"S3 Error during download: {e}")
        return False
    except Exception as e:
        print(f"Error downloading object: {e}")
        return False

def main():
    """Main function to run all tests"""
    print("=== S3 Connectivity Test ===")
    
    # Test basic connectivity
    client = test_connection()
    if not client:
        return
    
    # Get bucket name from environment variable
    bucket_name = "redb"
    print(f"\n=== Testing Access to Bucket: {bucket_name} ===")
    objects = test_bucket_access(client, bucket_name)
    
    if objects:
        # Test downloading the first object
        first_object = objects[0].object_name
        print(f"\n=== Testing Download of Object: {first_object} ===")
        test_download(client, bucket_name, first_object)
        
        # If the first one worked, let's try a specific file from the error log
        print(f"\n=== Testing Download of Specific Object ===")
        specific_object = "00/06/00062073114defac39cb7ab9cb99a0b77c535a09a241c60d47ddd0b6431629f1.zip"
        test_download(client, bucket_name, specific_object)

if __name__ == "__main__":
    main()