gpt4 book ai didi

Golang s3 在上传图片时找不到文件和服务器崩溃

转载 作者:数据小太阳 更新时间:2023-10-29 03:05:30 25 4
gpt4 key购买 nike

你好,首先我是 Golang 的新手,我正在尝试将照片上传到我的 s3 存储桶,但是我每次尝试都会遇到错误,我得到的错误是这个

错误打开文件:打开 55fc14631c00004800082775.jpeg:没有这样的文件或目录 2016/11/30 19:28:10 http:紧急服务 [::1]:58502:运行时错误:内存地址无效或指针为零解引用协程 5 [正在运行]

我的 buckets 权限设置为每个人都可以读取和写入,所以这段代码中一定有什么地方错了

我正在学习本教程 https://medium.com/@questhenkart/s3-image-uploads-via-aws-sdk-with-golang-63422857c548#.ahda1pgly我正在尝试上传在此处找到的公共(public)图片 http://img.huffingtonpost.com/asset/,scalefit_950_800_noupscale/55fc14631c00004800082775.jpeg

我现在的代码如下

func UploadProfile(w http.ResponseWriter) {

creds := credentials.NewStaticCredentials(aws_access_key_id, aws_secret_access_key,token)
_, err := creds.Get()
if err != nil {
fmt.Printf("bad credentials: %s", err)
}

config := &aws.Config{
Region :aws.String("us-west-1"),
Endpoint :aws.String("s3.amazonaws.com"),
S3ForcePathStyle:aws.Bool(true),
Credentials :creds,
}

svc := s3.New(session.New(), config)
file, err := os.Open("55fc14631c00004800082775.jpeg")
if err != nil {
fmt.Printf("err opening file: %s", err)
}

defer file.Close()

fileInfo, _ := file.Stat()
var size int64 = fileInfo.Size()
buffer := make([]byte, size)

file.Read(buffer)
fileBytes := bytes.NewReader(buffer)
fileType := http.DetectContentType(buffer)

path := "http://img.huffingtonpost.com/asset/,scalefit_950_800_noupscale/" + file.Name()
params := &s3.PutObjectInput{
Bucket: aws.String("MyBucket"),
Key: aws.String(path),
Body: fileBytes,
ContentLength: aws.Int64(size),
ContentType: aws.String(fileType),
}
resp, err := svc.PutObject(params)
if err != nil {
fmt.Printf("bad response: %s", err)
}
fmt.Printf("response %s", awsutil.StringValue(resp))

fmt.Fprintf(w,"done")

}

我不知道为什么这不起作用,因为我的凭据和存储桶是正确的。另外IMG地址适用于上图所以不知道为什么文件为零

<img height="200" width="200" src="http://img.huffingtonpost.com/asset/,scalefit_950_800_noupscale/55fc14631c00004800082775.jpeg"/>

最佳答案

@user1591668,

您的错误是“打开文件时出错:打开 55fc14631c00004800082775.jpeg:没有这样的文件或目录”。听起来好像与 AWS 的 SDK 无关。

检查您的二进制文件是否确实在您的图像文件所在的相同目录(“工作目录”)中开始,或者,为了测试这个假设,您可以尝试使用图像的绝对路径。

干杯,丹尼斯

关于Golang s3 在上传图片时找不到文件和服务器崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40900722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com