Compare commits

...

2 Commits

Author SHA1 Message Date
55bc83b82b Merge branch 'main' of https://git.fluffy.pw/leafus/s3-client
All checks were successful
Release Version / build (push) Successful in 1m17s
2024-09-29 04:59:20 +02:00
156d1a3e23 Add file deletion and ignore s3-client-dev 2024-09-29 04:58:53 +02:00
2 changed files with 33 additions and 1 deletions

3
.gitignore vendored
View File

@ -1 +1,2 @@
s3config.toml
s3config.toml
s3-client-dev

31
main.go
View File

@ -20,6 +20,7 @@ func main() {
configPath := flag.String("config", "", "Path to the configuration file")
directory := flag.String("directory", "", "Directory in the S3 bucket to upload the file to")
listFiles := flag.Bool("list", false, "List files in the S3 bucket")
deleteFile := flag.String("delete", "", "Path to the file to delete from the S3 bucket")
flag.Parse()
if *configPath == "" {
@ -80,6 +81,11 @@ func main() {
return
}
if *deleteFile != "" {
deleteS3File(svc, bucket, *deleteFile)
return
}
if *filePath == "" {
fmt.Println("No file specified for upload. Use -file to specify a file or -list to list bucket contents.")
fmt.Println("Use -help for more information")
@ -141,3 +147,28 @@ func listBucketFiles(svc *s3.S3, bucket string) {
os.Exit(1)
}
}
func deleteS3File(svc *s3.S3, bucket, filePath string) {
filePath = strings.TrimPrefix(filePath, "/")
_, err := svc.DeleteObject(&s3.DeleteObjectInput{
Bucket: aws.String(bucket),
Key: aws.String(filePath),
})
if err != nil {
fmt.Printf("Error deleting file from S3: %s\n", err)
os.Exit(1)
}
err = svc.WaitUntilObjectNotExists(&s3.HeadObjectInput{
Bucket: aws.String(bucket),
Key: aws.String(filePath),
})
if err != nil {
fmt.Printf("Error waiting for file deletion: %s\n", err)
os.Exit(1)
}
fmt.Printf("Successfully deleted file: %s\n", filePath)
}