小编Dhr*_*min的帖子

带有元数据的 AWS S3 预签名 URL

我正在尝试使用下面的 boto3 创建 presigned-url

s3 = boto3.client(
    's3', 
    aws_access_key_id=settings.AWS_ACCESS_KEY, 
    aws_secret_access_key=settings.AWS_ACCESS_SECRET, 
    region_name=settings.AWS_SES_REGION_NAME,
    config=Config(signature_version='s3v4')
)
metadata = {
    'test':'testing'
}
presigned_url = s3.generate_presigned_url(
ClientMethod='put_object', 
Params={
    'Bucket': settings.AWS_S3_BUCKET_NAME,
    'Key': str(new_file.uuid),
    'ContentDisposition': 'inline',
    'Metadata': metadata
})
Run Code Online (Sandbox Code Playgroud)

因此,在生成 URL 后,我尝试使用 Ajax 将其上传到 S3,它给出了 403 forbidden。如果我在创建 URL 时删除 Metadata 和 ContentDisposition,它将成功上传。

Boto3 版本:1.9.33

以下是我所指的文档:https : //boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.generate_presigned_url

django python-2.7 boto3

6
推荐指数
2
解决办法
6176
查看次数

传递整数作为参考和结构作为C中的参考之间的差异

代码1:

#include<stdio.h>

void change(int *);

void main()
{
  int i=5;
  change(&i); 
  printf("The number has changed to:%d\n",i);
}

void change(int *a)
{
  *a=*a+5;
}
Run Code Online (Sandbox Code Playgroud)

代码2:

#include<stdio.h>

#define SIZE 10

struct terms
{
  int coeff;
  int expo;
};

struct poly
{
  struct terms t[SIZE];
  int noofterms;
};

void initpoly(struct poly *);

void main()
{
  struct poly p1;
  initpoly(&p1);
}

void initpoly(struct poly *p)
{
  *p->noofterms=0;
}
Run Code Online (Sandbox Code Playgroud)

在code1中,如果我想改变变量的值i,我必须改变,*a=*a+5但是当我在code2中做同样的事情时,它会给出错误.有什么不同?

c

1
推荐指数
1
解决办法
50
查看次数

标签 统计

boto3 ×1

c ×1

django ×1

python-2.7 ×1