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
|
||||
s3-client-dev
|
31
main.go
31
main.go
|
@ -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)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user