mirror of
https://github.com/wgh136/nysoure.git
synced 2025-09-27 04:17:23 +00:00
feat: small file is unrequired to verity to download.
This commit is contained in:
@@ -702,6 +702,8 @@ function FileTile({ file }: { file: RFile }) {
|
||||
</p>
|
||||
</div>
|
||||
<div className={"flex flex-row items-center"}>
|
||||
{
|
||||
file.size > 10 * 1024 * 1024 ? (
|
||||
<button
|
||||
ref={buttonRef}
|
||||
className={"btn btn-primary btn-soft btn-square"}
|
||||
@@ -716,6 +718,16 @@ function FileTile({ file }: { file: RFile }) {
|
||||
>
|
||||
<MdOutlineDownload size={24} />
|
||||
</button>
|
||||
) : (
|
||||
<a
|
||||
href={network.getFileDownloadLink(file.id, "")}
|
||||
target="_blank"
|
||||
className={"btn btn-primary btn-soft btn-square"}
|
||||
>
|
||||
<MdOutlineDownload size={24} />
|
||||
</a>
|
||||
)
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -22,6 +22,7 @@ import (
|
||||
const (
|
||||
blockSize = 4 * 1024 * 1024 // 4MB
|
||||
storageKeyUnavailable = "storage_key_unavailable" // Placeholder for unavailable storage key
|
||||
MinUnrequireVerifyFileSize = 10 * 1024 * 1024 // 10MB
|
||||
)
|
||||
|
||||
func getUploadingSize() int64 {
|
||||
@@ -387,15 +388,6 @@ func GetFile(fid string) (*model.FileView, error) {
|
||||
|
||||
// DownloadFile handles the file download request. Return a presigned URL or a direct file path.
|
||||
func DownloadFile(fid, cfToken string) (string, string, error) {
|
||||
passed, err := verifyCfToken(cfToken)
|
||||
if err != nil {
|
||||
log.Error("failed to verify cf token: ", err)
|
||||
return "", "", model.NewRequestError("failed to verify cf token")
|
||||
}
|
||||
if !passed {
|
||||
log.Info("cf token verification failed")
|
||||
return "", "", model.NewRequestError("cf token verification failed")
|
||||
}
|
||||
file, err := dao.GetFile(fid)
|
||||
if err != nil {
|
||||
log.Error("failed to get file: ", err)
|
||||
@@ -405,6 +397,16 @@ func DownloadFile(fid, cfToken string) (string, string, error) {
|
||||
return "", "", model.NewRequestError("file is not available, please try again later")
|
||||
}
|
||||
|
||||
passed, err := verifyCfToken(cfToken)
|
||||
if err != nil {
|
||||
log.Error("failed to verify cf token: ", err)
|
||||
return "", "", model.NewRequestError("failed to verify cf token")
|
||||
}
|
||||
if !passed && file.Size > MinUnrequireVerifyFileSize {
|
||||
log.Info("cf token verification failed")
|
||||
return "", "", model.NewRequestError("cf token verification failed")
|
||||
}
|
||||
|
||||
if file.StorageID == nil {
|
||||
if file.RedirectUrl != "" {
|
||||
err := dao.AddResourceDownloadCount(file.ResourceID)
|
||||
|
@@ -28,6 +28,9 @@ func verifyCfToken(cfToken string) (bool, error) {
|
||||
if config.CloudflareTurnstileSecretKey() == "" {
|
||||
return true, nil
|
||||
}
|
||||
if cfToken == "" {
|
||||
return false, nil
|
||||
}
|
||||
client := &http.Client{}
|
||||
data, _ := json.Marshal(map[string]string{
|
||||
"secret": config.CloudflareTurnstileSecretKey(),
|
||||
|
Reference in New Issue
Block a user