Ibrahim Hoteit

53 papers B 1C 3Misc 1Journal 34Unranked 13
YearRankTypeTitle / Venue / Authors
2025 J jnl
IEEE Access
Wenqiang Cui, Shehzad Afzal, Rafael Messias Martins, Sohaib Ghani, Ibrahim Hoteit
2025 J jnl
CoRR
GuoZhong Li, Muhannad Alhumaidi, Spiros Skiadopoulos, Ibrahim Hoteit, Panos Kalnis
2025 C conf
ECMS
Rabih Ghostine, Ibrahim Hoteit
2024 J jnl
CoRR
Mohamad Abed El Rahman Hammoud, Naila Raboudi, Edriss S. Titi, Omar M. Knio, Ibrahim Hoteit
2023 conf
EuroVA@EuroVis
Ramakrishna P. Pammi, Shehzad Afzal, Hari Prasad Dasari, Muhammad Yousaf, Sohaib Ghani, Murali Sankar Venkatraman, Ibrahim Hoteit
2023 conf
SENSORS
Yurii Tsyban, Eckaard Le Roux, Aiman Fakieh, Ibrahim Hoteit, Khaled Nabil Salama
2023 J jnl
CoRR
Mohamad Abed El Rahman Hammoud, Edriss S. Titi, Ibrahim Hoteit, Omar M. Knio
2023 conf
ISC Workshops
James Kress, Glendon Holst, Hari Prasad Dasari, Shehzad Afzal, Ibrahim Hoteit, Thomas Theußl
2023 J jnl
Remote. Sens.
Koteswararao Vankayalapati, Hari Prasad Dasari, Sabique Langodan, Samah El Mohtar, Sivareddy Sanikommu, Khaled Asfahani, Srinivas Desamsetti, Ibrahim Hoteit
2023 J jnl
Remote. Sens.
Mohamad Abed El Rahman Hammoud, Peng Zhan, Omar Hakla, Omar M. Knio, Ibrahim Hoteit
2023 conf
EnvirVis@EuroVis
James Kress, Shehzad Afzal, Hari Prasad Dasari, Sohaib Ghani, Arjan Zamreeq, Ayman Ghulam, Ibrahim Hoteit
2023 J jnl
ACM Trans. Interact. Intell. Syst.
Shehzad Afzal, Sohaib Ghani, Mohamad Mazen Hittawe, Sheikh Faisal Rashid, Omar M. Knio, Markus Hadwiger, Ibrahim Hoteit
2022 J jnl
CoRR
Mohamad Abed El Rahman Hammoud, Olivier LeMaitre, Edriss S. Titi, Ibrahim Hoteit, Omar M. Knio
2022 C conf
INDIN
Mohamad Mazen Hittawe, Sabique Langodan, Ouadi Beya, Ibrahim Hoteit, Omar M. Knio
2022 J jnl
CoRR
Srinivas Desamsetti, Hari Prasad Dasari, Sabique Langodan, Yesubabu Viswanadhapalli, Raju Attada, Thang M. Luong, Omar M. Knio, Edriss S. Titi, Ibrahim Hoteit
2022 J jnl
IEEE Trans. Signal Process.
Boujemaa Ait-El-Fquih, Ibrahim Hoteit
2022 J jnl
INFORMS J. Comput.
Ricardo M. Lima, Antonio J. Conejo, Loïc Giraldi, Olivier P. Le Maître, Ibrahim Hoteit, Omar M. Knio
2021 J jnl
J. Comput. Sci.
Habib Toye, Peng Zhan, Furrukh Sana, Sivareddy Sanikommu, Naila Raboudi, Ibrahim Hoteit
2021 J jnl
Remote. Sens.
John A. Gittings, Dionysios E. Raitsos, Robert J. W. Brewin, Ibrahim Hoteit
2021 J jnl
Remote. Sens.
Nikolaos Papagiannopoulos, Dionysios E. Raitsos, Georgios Krokos, John A. Gittings, Robert J. W. Brewin, Vassilis P. Papadopoulos, Alexandra Pavlidou, Nick Selmes, Steve B. Groom, Ibrahim Hoteit
2021 J jnl
EURO J. Comput. Optim.
Ricardo M. Lima, Antonio J. Conejo, Loïc Giraldi, Olivier P. Le Maître, Ibrahim Hoteit, Omar M. Knio
2021 J jnl
Remote. Sens.
Jingyi Ma, Daquan Guo, Peng Zhan, Ibrahim Hoteit
2020 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Nabila Bounceur, Ibrahim Hoteit, Omar M. Knio
2020 conf
IEEE VIS (Short Papers)
Shehzad Afzal, Sohaib Ghani, Hank C. Jenkins-Smith, David S. Ebert, Markus Hadwiger, Ibrahim Hoteit
2020 J jnl
CoRR
Shehzad Afzal, Sohaib Ghani, Hank C. Jenkins-Smith, David S. Ebert, Markus Hadwiger, Ibrahim Hoteit
2020 J jnl
Remote. Sens.
Elamurugu Alias Gokul, Dionysios E. Raitsos, John A. Gittings, Ibrahim Hoteit
2020 J jnl
Signal Process.
Boujemaa Ait-El-Fquih, Jean-François Giovannelli, Nicolas Paul, Alexandre Girard, Ibrahim Hoteit
2020 Misc conf
ICASSP
Boujemaa Ait-El-Fquih, Thomas Rodet, Ibrahim Hoteit
2019 J jnl
J. Electronic Imaging
Mohamad Mazen Hittawe, Shehzad Afzal, Tahira Jamil, Hichem Snoussi, Ibrahim Hoteit, Omar M. Knio
2019 J jnl
Biomed. Signal Process. Control.
Furrukh Sana, Tarig Ballal, Maha Shadaydeh, Ibrahim Hoteit, Tareq Y. Al-Naffouri
2019 conf
EnvirVis@EuroVis
Shehzad Afzal, Sohaib Ghani, Garth Tissington, Sabique Langodan, Hari Prasad Dasari, Dionysios E. Raitsos, John A. Gittings, Tahira Jamil, Madhusudhanan Srinivasan, Ibrahim Hoteit
2018 conf
SciVis
Anke Friederici, Habib Toye Mahamadou Kele, Ibrahim Hoteit, Tino Weinkauf, Holger Theisel, Markus Hadwiger
2018 conf
SSP
Boujemaa Ait-El-Fquih, Jean-François Giovannelli, Nicolas Paul, Alexandre Girard, Ibrahim Hoteit
2018 J jnl
J. Comput. Sci.
Habib Toye, Samuel Kortas, Peng Zhan, Ibrahim Hoteit
2018 J jnl
Remote. Sens.
Matteo G. Ziliani, Stephen Parkes, Ibrahim Hoteit, Matthew F. McCabe
2018 J jnl
Comput. Stat. Data Anal.
Loïc Giraldi, Olivier P. Le Maître, Ibrahim Hoteit, Omar M. Knio
2018 J jnl
Comput. Oper. Res.
Ricardo M. Lima, Antonio J. Conejo, Sabique Langodan, Ibrahim Hoteit, Omar M. Knio
2016 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Furrukh Sana, Fabio Ravanelli, Tareq Y. Al-Naffouri, Ibrahim Hoteit
2016 J jnl
IEEE Trans. Signal Process.
Boujemaa Ait-El-Fquih, Ibrahim Hoteit
2016 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Furrukh Sana, Klemens Katterbauer, Tareq Y. Al-Naffouri, Ibrahim Hoteit
2016 conf
EnvirVis@EuroVis
Thomas Höllt, Fabio Miguel de Matos Ravanelli, Markus Hadwiger, Ibrahim Hoteit
2015 conf
ISSPIT
Boujemaa Ait-El-Fquih, Ibrahim Hoteit
2015 C conf
IGARSS
Furrukh Sana, Klemens Katterbauer, Tareq Y. Al-Naffouri, Ibrahim Hoteit
2015 J jnl
IEEE Trans. Signal Process.
Boujemaa Ait-El-Fquih, Ibrahim Hoteit
2015 conf
EnvirVis@EuroVis
Thomas Höllt, Markus Hadwiger, Omar M. Knio, Ibrahim Hoteit
2014 conf
DyDESS
Mohamad E. Gharamti, Youssef M. Marzouk, Xun Huan, Ibrahim Hoteit
2014 conf
DyDESS
Mohamad E. Gharamti, Boujemaa Ait-El-Fquih, Ibrahim Hoteit
2014 J jnl
J. Comput. Phys.
Ahmed H. Elsheikh, Mary F. Wheeler, Ibrahim Hoteit
2014 J jnl
Biomed. Signal Process. Control.
Furrukh Sana, Tarig Ballal, Tareq Y. Al-Naffouri, Ibrahim Hoteit
2014 J jnl
IEEE Trans. Vis. Comput. Graph.
Thomas Höllt, Ahmed Magdy, Peng Zhan, Guoning Chen, Ganesh Gopalakrishnan, Ibrahim Hoteit, Charles D. Hansen, Markus Hadwiger
2013 J jnl
J. Comput. Phys.
Ahmed H. Elsheikh, Mary F. Wheeler, Ibrahim Hoteit
2013 B conf
PacificVis
Thomas Höllt, Ahmed Magdy, Guoning Chen, Ganesh Gopalakrishnan, Ibrahim Hoteit, Charles D. Hansen, Markus Hadwiger
2001
Ibrahim Hoteit
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()