Add file deletion and ignore s3-client-dev
This commit is contained in:
parent
9be88aea40
commit
156d1a3e23
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1 +1,2 @@
|
||||||
s3config.toml
|
s3config.toml
|
||||||
|
s3-client-dev
|
31
main.go
31
main.go
|
@ -20,6 +20,7 @@ func main() {
|
||||||
configPath := flag.String("config", "", "Path to the configuration file")
|
configPath := flag.String("config", "", "Path to the configuration file")
|
||||||
directory := flag.String("directory", "", "Directory in the S3 bucket to upload the file to")
|
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")
|
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()
|
flag.Parse()
|
||||||
|
|
||||||
if *configPath == "" {
|
if *configPath == "" {
|
||||||
|
@ -80,6 +81,11 @@ func main() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if *deleteFile != "" {
|
||||||
|
deleteS3File(svc, bucket, *deleteFile)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if *filePath == "" {
|
if *filePath == "" {
|
||||||
fmt.Println("No file specified for upload. Use -file to specify a file or -list to list bucket contents.")
|
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")
|
fmt.Println("Use -help for more information")
|
||||||
|
@ -141,3 +147,28 @@ func listBucketFiles(svc *s3.S3, bucket string) {
|
||||||
os.Exit(1)
|
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)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user