Go SDK
AWS SDK for Go omogućava razvoj aplikacija koje koriste HostArena S3 Storage kroz Amazon S3 kompatibilan API.
Šta je potrebno?
Pripremite sledeće podatke iz korisničkog panela:
-
Endpoint
-
Access Key
-
Secret Key
-
Naziv Bucket-a
Primer:
| Polje | Primer |
|---|---|
| Endpoint | https://username.s3.hostarena.rs |
| Bucket | username |
| Access Key | Dostupan u panelu |
| Secret Key | Dostupan u panelu |
Instalacija
Instalirajte AWS SDK:
go get github.com/aws/aws-sdk-go-v2
go get github.com/aws/aws-sdk-go-v2/config
go get github.com/aws/aws-sdk-go-v2/service/s3
Povezivanje
package main
import (
"context"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/credentials"
"github.com/aws/aws-sdk-go-v2/service/s3"
)
func main() {
cfg, _ := config.LoadDefaultConfig(
context.TODO(),
config.WithRegion("us-east-1"),
config.WithCredentialsProvider(
credentials.NewStaticCredentialsProvider(
"YOUR_ACCESS_KEY",
"YOUR_SECRET_KEY",
"",
),
),
)
client := s3.NewFromConfig(cfg, func(o *s3.Options) {
o.BaseEndpoint = aws.String("https://username.s3.hostarena.rs")
o.UsePathStyle = false
})
_ = client
}
Prikaz Bucket-a
result, _ := client.ListBuckets(context.TODO(), &s3.ListBucketsInput{})
for _, bucket := range result.Buckets {
fmt.Println(*bucket.Name)
}
Prikaz sadržaja Bucket-a
client.ListObjectsV2(
context.TODO(),
&s3.ListObjectsV2Input{
Bucket: aws.String("username"),
},
)
Upload fajla
file, _ := os.Open("backup.zip")
defer file.Close()
client.PutObject(
context.TODO(),
&s3.PutObjectInput{
Bucket: aws.String("username"),
Key: aws.String("backup.zip"),
Body: file,
},
)
Preuzimanje fajla
client.GetObject(
context.TODO(),
&s3.GetObjectInput{
Bucket: aws.String("username"),
Key: aws.String("backup.zip"),
},
)
Brisanje fajla
client.DeleteObject(
context.TODO(),
&s3.DeleteObjectInput{
Bucket: aws.String("username"),
Key: aws.String("backup.zip"),
},
)
Najčešći problemi
InvalidAccessKeyId
Proverite Access Key.
SignatureDoesNotMatch
Proverite Secret Key i Endpoint.
NoSuchBucket
Proverite naziv Bucket-a.
Could not connect
Proverite da li koristite:
https://username.s3.hostarena.rs
