Files
AWS_S3_Upploader/README.md
2025-02-12 13:51:29 +01:00

83 lines
2.2 KiB
Markdown

# AWS Upload Tool
This Python script allows you to upload files from a local folder to an AWS S3 bucket. It supports dynamic configuration through a YAML file, making it flexible and easy to manage.
## 📦 Project Structure
```
AWS_Upload/
├── src/
│ └── aws_uploader.py
├── config/
│ └── config.yaml
├── logs/
├── requirements.txt
└── README.md
```
- ``: Main script responsible for uploading files to AWS S3.
- ``: Configuration file with AWS credentials and upload settings.
- ``: Folder where log files are automatically generated.
- ``: List of Python dependencies.
- ``: This file.
## ⚙️ Configuration
Create a `config.yaml` file inside the `config/` folder:
```yaml
aws_access_key_id: "YOUR_ACCESS_KEY_ID"
aws_secret_access_key: "YOUR_SECRET_ACCESS_KEY"
region_name: "us-west-2"
bucket_name: "your-s3-bucket-name"
local_folder: "D:\\Path\\To\\Local\\Folder"
s3_prefix: "optional/prefix/"
```
- ``: Your AWS access key.
- ``: Your AWS secret access key.
- ``: AWS region where your bucket is located.
- ``: Name of the S3 bucket.
- ``: Path to the local folder with files to upload.
- `` *(optional)*: Prefix to organize files within the S3 bucket.
## 🚀 Installation
1. **Clone or download the project.**
2. **Navigate to the project folder:**
```bash
cd AWS_Upload
```
3. **Install dependencies:**
```bash
pip install -r requirements.txt
```
## 📤 Usage
Run the script from the project directory:
```bash
python src/aws_uploader.py
```
## 📋 Logging
- Log files are saved in the `logs/` folder.
- Log format: `LOG_dd_mm_yyyy_hh_mm_ss.log`
- Logs include information about upload progress and any errors.
## ❗ Error Handling
- Errors during file uploads (e.g., invalid credentials, missing bucket) are logged both in the console and in the log file.
- General exceptions are also captured and logged for debugging.
## 🤝 Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you'd like to change.
## 📄 License
This project is licensed under the MIT License.