簡體   English   中英

我不想創建預簽名的 url 帖子,但總是失敗

[英]I wan't to create presigned url post, but always failed

感謝偉大的包!

當我使用 S3 服務創建 localstack 開發以創建 presignedurl 帖子時,我遇到了問題。

我已經使用SERVICES=s3 DEBUG=1 S3_SKIP_SIGNATURE_VALIDATION=1 localstack start運行 localstack

我有設置AWS_ACCESS_KEY_ID=test AWS_SECRET_ACCESS_KEY=test AWS_DEFAULT_REGION=us-east-1 AWS_ENDPOINT_URL=http://localhost:4566 S3_Bucket=my-bucket

我確定有水桶

> awslocal s3api list-buckets                                             
{
    "Buckets": [
        {
            "Name": "my-bucket",
            "CreationDate": "2021-11-16T08:43:23+00:00"
        }
    ],
    "Owner": {
        "DisplayName": "webfile",
        "ID": "bcaf1ffd86f41161ca5fb16fd081034f"
    }
}

我嘗試創建預簽名 url,並在控制台中運行

s3_client_sync.create_presigned_post(bucket_name=settings.S3_Bucket, object_name="application/test.png", fields={"Content-Type": "image/png"}, conditions=[["Expires", 3600]])

並像這樣返回

{'url': 'http://localhost:4566/kredivo-thailand',
 'fields': {'Content-Type': 'image/png',
  'key': 'application/test.png',
  'AWSAccessKeyId': 'test',
  'policy': 'eyJleHBpcmF0aW9uIjogIjIwMjEtMTEtMTZUMTE6Mzk6MjNaIiwgImNvbmRpdGlvbnMiOiBbWyJFeHBpcmVzIiwgMzYwMF0sIHsiYnVja2V0IjogImtyZWRpdm8tdGhhaWxhbmQifSwgeyJrZXkiOiAiYXBwbGljYXRpb24vdGVzdC5wbmcifV19',
  'signature': 'LfFelidjG+aaTOMxHL3fRPCw/xM='}}

我用失眠測試

我已經閱讀了登錄localstack

2021-11-16T10:54:04:DEBUG:localstack.services.s3.s3_utils: Received presign S3 URL: http://localhost:4566/my-bucket/application/test.png?AWSAccessKeyId=test&Policy=eyJleHBpcmF0aW9uIjogIjIwMjEtMTEtMTZUMTE6Mzk6MjNaIiwgImNvbmRpdGlvbnMiOiBbWyJFeHBpcmVzIiwgMzYwMF0sIHsiYnVja2V0IjogImtyZWRpdm8tdGhhaWxhbmQifSwgeyJrZXkiOiAiYXBwbGljYXRpb24vdGVzdC5wbmcifV19&Signature=LfFelidjG%2BaaTOMxHL3fRPCw%2FxM%3D&Expires=3600
2021-11-16T10:54:04:WARNING:localstack.services.s3.s3_utils: Signatures do not match, but not raising an error, as S3_SKIP_SIGNATURE_VALIDATION=1
2021-11-16T10:54:04:INFO:localstack.services.s3.s3_utils: Presign signature calculation failed: <Response [403]>

我缺少什么,所以我無法創建 presignedurl 帖子?

問題在於您的 AWS 配置 -

AWS_ACCESS_KEY_ID=test         // Should be an Actual access Key for the IAM user
AWS_SECRET_ACCESS_KEY=test           // Should be an Actual Secret Key for the IAM user
AWS_DEFAULT_REGION=us-east-1 
AWS_ENDPOINT_URL=http://localhost:4566 // Endpoint seems wrong
S3_Bucket=my-bucket              // Actual Bucket Name in AWS S3 console

有關更多信息,請嘗試閱讀此處並使用正確的 AWS 憑證設置您的環境 - 設置 AWS 憑證

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM