gpt4 book ai didi

go - 在go的层次结构中上下几个级别引用文件

转载 作者:行者123 更新时间:2023-12-01 22:37:44 25 4
gpt4 key购买 nike

我正在尝试使用os.open(fileDir)读取文件,然后将该文件上传到s3存储桶。到目前为止,这就是我所拥有的。

func addFileToS3(s *session.Session, fileDir string) error {
file, err := os.Open(fileDir)
if err != nil {
return err
}
defer file.Close()
// Get file size and read the file content into a buffer
fileInfo, _ := file.Stat()
var size int64 = fileInfo.Size()
buffer := make([]byte, size)
file.Read(buffer)
// code to upload to s3
return nil
我的目录结构像
|--project-root
|--test
|--functional
|--assets
|-- good
|--fileINeed
但是我的代码正在内部运行
|--project-root
|--services
|--service
|--test
|--myGoCode
如何传递正确的 fileDir?我需要一个在本地以及在部署代码时均可使用的解决方案。我查看了 path/filepath包,但不确定是否先获取绝对路径,然后再沿层次结构进行操作。

最佳答案

您可以添加以下小功能以获得所需的文件路径。

var (
_, file, _, _ = runtime.Caller(0)
baseDir = filepath.Dir(file)
projectDir = filepath.Join(baseDir, "../../../")
)

func getFileINeedDirectory() string {
fileINeedDir := path.Join(projectDir, "test/functional/assets/good/fileINeed")

return fileINeedDir // project-dir/test/functional/assets/good/fileINeed
}

关于go - 在go的层次结构中上下几个级别引用文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63852107/

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