mirror of
https://github.com/jkocon/AWS_S3_Upploader.git
synced 2026-02-24 05:14:41 +01:00
Add files via upload
This commit is contained in:
94
README.md
94
README.md
@@ -1 +1,93 @@
|
|||||||
# AWS_S3_Upploader
|
# 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.
|
||||||
|
|
||||||
|
## 🔐 Security Notice
|
||||||
|
|
||||||
|
- **Never commit **``** with real AWS credentials to version control.**
|
||||||
|
- Use `.gitignore` to exclude sensitive files:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
config/config.yaml
|
||||||
|
logs/
|
||||||
|
*.log
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🤝 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.
|
||||||
|
|
||||||
|
|||||||
2
requirements.txt
Normal file
2
requirements.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
boto3
|
||||||
|
pyyaml
|
||||||
Reference in New Issue
Block a user