Files
Gogs/internal/lfsutil/storage.go
ᴜɴᴋɴᴡᴏɴ 34145c990d lfs: implement HTTP routes (#6035)
* Bootstrap with GORM

* Fix lint error

* Set conn max lifetime to one minute

* Fallback to use gorm v1

* Define HTTP routes

* Finish authentication

* Save token updated

* Add docstring

* Finish authorization

* serveBatch rundown

* Define types in lfsutil

* Finish Batch

* authutil

* Finish basic

* Formalize response error

* Fix lint errors

* authutil: add tests

* dbutil: add tests

* lfsutil: add tests

* strutil: add tests

* Formalize 401 response
2020-04-04 21:14:15 +08:00

30 lines
743 B
Go

// Copyright 2020 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package lfsutil
import (
"path/filepath"
"strings"
)
// Storage is the storage type of an LFS object.
type Storage string
const (
StorageLocal Storage = "local"
)
// StorageLocalPath returns computed file path for storing object on local file system.
// It returns empty string if given "oid" isn't valid.
func StorageLocalPath(root string, oid OID) string {
if !ValidOID(oid) {
return ""
}
// Valid OID is guaranteed to have second element as hash.
hash := strings.SplitN(string(oid), ":", 2)[1]
return filepath.Join(root, string(hash[0]), string(hash[1]), hash)
}