Kaining Han

47 papers B 2C 5Journal 24Unranked 16
YearRankTypeTitle / Venue / Authors
2026 J jnl
Signal Process.
Xuanbo Zhang, Wenhao Sha, Junjie Hu, Tianzhu Qin, Jianhao Hu, Kaining Han
2025 conf
ICC
Ruobing Yang, Yubin Zhu, Ya Gao, Kaining Han, Jianhao Hu
2025 C conf
ISCAS
Ya Gao, Yubin Zhu, Ruobing Yang, Kaining Han, Jianhao Hu
2025 J jnl
IET Circuits Devices Syst.
Jinwei Xie, Yubin Zhu, Kaining Han, Jianhao Hu
2025 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Lisha Luo, Xuan He, Qin Du, Kaining Han, Zhixiong Di, Xiaohu Tang
2025 conf
ICC Workshops
Qiushi Wang, Tianzhu Qin, Xian Wang, Jia'ao Liang, Kaining Han, Jianhao Hu
2025 J jnl
IEEE Trans. Wirel. Commun.
Tianzhu Qin, Ziyi Yang, Jia'ao Liang, Kaining Han, Jianhao Hu
2024 J jnl
IEEE Internet Things J.
Jundong Feng, Junchao Wang, Yubin Zhu, Kaining Han
2024 conf
VTC Spring
Kaining Han, Yonghang Dai, Xuanbo Zhang, Jianhao Hu
2024 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Shuai Hu, Kaining Han, Jianhao Hu
2024 conf
VTC Spring
Tianzhu Qin, Ziyi Yang, Jia'ao Liang, Kaining Han, Jianhao Hu
2024 conf
ICCT
Yubin Zhu, Ruobing Yang, Ya Gao, Kaining Han, Jianhao Hu
2023 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Yubin Zhu, Yanyan Zhang, Kaining Han, Jianhao Hu
2023 conf
ICC
Kaining Han, Guodong Shen, Jianhao Hu
2023 B conf
GLOBECOM
Xuanbo Zhang, Kaining Han, Jianhao Hu
2023 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Shuai Hu, Kaining Han, Yubin Zhu, Guodong Shen, Fujie Wang, Jianhao Hu
2023 J jnl
Future Gener. Comput. Syst.
Junchao Wang, Dongmin Huang, Shengwen Fan, Kaining Han, Gwanggil Jeon, Joel J. P. C. Rodrigues
2022 J jnl
J. Real Time Image Process.
Yubin Zhu, Yonghang Dai, Kaining Han, Junchao Wang, Jianhao Hu
2022 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Shuai Hu, Kaining Han, Fujie Wang, Jianhao Hu
2022 J jnl
IEEE Trans. Computers
Xincheng Feng, Ke Hu, Kaining Han
2022 J jnl
Multim. Tools Appl.
Huiqian Wang, Sijia He, Ting Liu, Yu Pang, Jinzhao Lin, Qinghui Liu, Kaining Han, Junchao Wang, Gwanggil Jeon
2021 J jnl
IEEE Internet Things Mag.
Junchao Wang, Shengwen Fan, Anastasios Alexandridis, Kaining Han, Gwanggil Jeon, Zeljko Zilic, Yu Pang
2020 C conf
ISCAS
Junchao Wang, Kaining Han, N. G. David, Qiang Fang
2020 J jnl
IEEE Access
Shengwen Fan, Kai Li, Ying Zhang, Honghao Tan, Qiang Fang, Kaining Han, Junchao Wang
2020 C conf
ISCAS
Kaining Han, Junchao Wang, Xingliang Xiong, Qiang Fang, N. G. David
2020 J jnl
Future Gener. Comput. Syst.
Junchao Wang, Kaining Han, Anastasios Alexandridis, Zhiyu Chen, Zeljko Zilic, Yu Pang, Gwanggil Jeon, Francesco Piccialli
2020 J jnl
Future Gener. Comput. Syst.
Junchao Wang, Kaining Han, Shengwen Fan, Ying Zhang, Honghao Tan, Gwanggil Jeon, Yu Pang, Jinzhao Lin
2020 J jnl
Remote. Sens.
Tong Bai, Yu Pang, Junchao Wang, Kaining Han, Jiasai Luo, Huiqian Wang, Jinzhao Lin, Jun Wu, Hui Zhang
2019 conf
BioCAS
Kaining Han, Junchao Wang, Qiang Fang
2019 J jnl
J. Ambient Intell. Humaniz. Comput.
Junchao Wang, Kaining Han, Anastasios Alexandridis, Zeljko Zilic, Jinzhao Lin, Yu Pang, Xiaomin Yang
2019 B conf
GLOBECOM
Jie Xiao, Jianhao Hu, Kaining Han
2019 J jnl
IEEE Trans. Signal Process.
Kaining Han, Junchao Wang, Warren J. Gross, Jianhao Hu
2018 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Kaining Han, Jianhao Hu, Jienan Chen, Zhengbing Zhang, Hao Lu
2018 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Kaining Han, Jianhao Hu, Jienan Chen, Hao Lu
2018 J jnl
Sensors
Junchao Wang, Kaining Han, Zhiyu Chen, Anastasios Alexandridis, Zeljko Zilic, Yu Pang, Jinzhao Lin
2018 J jnl
Comput. Networks
Junchao Wang, Kaining Han, Anastasios Alexandridis, Zeljko Zilic, Yu Pang, Wei Wu, Sadia Din, Gwanggil Jeon
2018 C conf
ISCAS
Junchao Wang, Kaining Han, Anastasios Alexandridis, Zeljko Zilic, Yu Pang, Jinzhao Lin
2018 conf
ACM Great Lakes Symposium on VLSI
Kaining Han, Junchao Wang, Warren J. Gross
2018 C conf
BIBE
Zhiyu Chen, Junchao Wang, Kaining Han, Zeljko Zilic
2018 conf
MWSCAS
Kaining Han, Junchao Wang, Warren J. Gross
2018 conf
NEWCAS
Junchao Wang, Kaining Han, Anastasios Alexandridis, Zeljko Zilic, Tong Bai, Jinzhao Lin, Yu Pang, Guoquan Li
2017 conf
MWSCAS
Kaining Han, Jianhao Hu, Jienan Chen, Gerald E. Sobelman
2017 conf
MWSCAS
Zhenbing Zhang, Jianhao Hu, Jienan Chen, Kaining Han
2016 conf
GLOBECOM Workshops
Kaining Han, Zhenbing Zhang, Jianhao Hu, Jienan Chen
2016 conf
GLOBECOM Workshops
Zhenbing Zhang, Kaining Han, Jianhao Hu, Jienan Chen
2016 conf
DSP
Jienan Chen, Kaining Han, Jianhao Hu, Zhenbing Zhang
2015 conf
ASICON
Kaining Han, Jianhao Hu, Jienan Chen, Sheng Yang
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()