SignatureDoesNotMatch: рассчитанная нами подпись запроса не соответствует предоставленной вами подписи, соединение S3.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 SignatureDoesNotMatch: рассчитанная нами подпись запроса не соответствует предоставленной вами подписи, соединение S3.

Сообщение Anonymous »

Я новичок в Go и AWS и уже почти неделю пытаюсь подключиться к локальному развертыванию S3, но безуспешно. В настоящее время я использую AWS-SDK v1 для Go и пытаюсь создать простое соединение с конечной точкой, чтобы иметь возможность вывести список содержимого корзины. У меня простая настройка клиента с установленными учетными данными, но каждый раз я получаю либо ошибку аутентификации, либо ошибку разрешения DNS. Может ли кто-нибудь помочь, пожалуйста?
Я пробовал несколько разных способов указания учетных данных (файл учетных данных, переменные среды, установка переменных env в программе golang), но все равно получаю ту же ошибку. но когда я использую их в Python, все работает без проблем. Я читал подобные случаи, но ни одно из решений мне не помогло.
Ниже приведен мой код.
основной пакет
импорт (
"fmt"

Код: Выделить всё

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
)
type S3Client struct {
строка URL
строка accessKey
строка secretKey
bucketName string
//httpClient *http.Client
}
func NewClient(endpointUrl, accessKey, secretKey, BucketName string) (S3Client, ошибка) {

Код: Выделить всё

justS3 := S3Client{
url:        endpointUrl,
accessKey:  accessKey,
secretKey:  secretKey,
bucketName: bucketName,
}
return justS3, nil
func (c *S3Client) ListBucketContents() {

Код: Выделить всё

creds := credentials.NewStaticCredentials(c.accessKey, c.secretKey, "")
sess, err := session.NewSession(&aws.Config{

Credentials: creds,
Endpoint:    aws.String(c.url),
Region:      aws.String("us-east-01"),
DisableSSL:  aws.Bool(true),
})

if err != nil {
fmt.Printf("Unable to login, due to error %v", err)
}

//create an s3 service client
svc := s3.New(sess)

//get list of all items

resp, err := svc.ListObjectsV2(&s3.ListObjectsV2Input{Bucket:
aws.String(c.bucketName)})
if err != nil {
fmt.Printf("unable to list items in bucket %q, %v,", c.bucketName, err)
}

for _, item := range resp.Contents {

fmt.Printf("Below is a list of Items under the bucket %s .\n", c.bucketName)
fmt.Print("*********************************")
fmt.Println("Name:             ", item.Key)
fmt.Print("Last Modified", item.LastModified)
fmt.Print("Size", item.Size)
fmt.Println("")

}

основной пакет
импорт (
"fmt"
)
func main() {

Код: Выделить всё

client, err := NewClient("", "Accesskey", "SecretKey", "bucketname")

if err != nil {
fmt.Println("The logging has failed")

}

client.ListBucketContents()


Подробнее здесь: https://stackoverflow.com/questions/792 ... tch-the-si
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»