Added fallback if renaming cant move an upload
This commit is contained in:
parent
891d904d9c
commit
76ed54f119
3 changed files with 40 additions and 4 deletions
|
|
@ -148,7 +148,7 @@ func (b *Builder) renderFeeds(ctx buildContext, postIter iter.Seq[models.Maybe[*
|
|||
Content: string(renderedPost.HTML),
|
||||
// TO FIX: Created should be first published
|
||||
Created: post.PublishedAt,
|
||||
Updated: post.PublishedAt,
|
||||
Updated: post.UpdatedAt,
|
||||
})
|
||||
|
||||
items++
|
||||
|
|
|
|||
|
|
@ -26,12 +26,46 @@ func (p *Provider) AdoptFile(site models.Site, up models.Upload, filename string
|
|||
return err
|
||||
}
|
||||
|
||||
if err := os.Rename(filename, fullPath); err != nil {
|
||||
if err := os.Rename(filename, fullPath); err == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Can't rename, possibly because of a cross-link device issue. So copy instead
|
||||
if err := moveFile(filename, fullPath); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func moveFile(src, dst string) error {
|
||||
if err := copyFile(src, dst); err != nil {
|
||||
_ = os.Remove(dst)
|
||||
return err
|
||||
}
|
||||
_ = os.Remove(src)
|
||||
return nil
|
||||
}
|
||||
|
||||
func copyFile(src, dst string) error {
|
||||
in, err := os.Open(src)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer in.Close()
|
||||
|
||||
out, err := os.Create(dst)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer out.Close()
|
||||
|
||||
if _, err = io.Copy(out, in); err != nil {
|
||||
return err
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (p *Provider) OpenUpload(site models.Site, up models.Upload) (io.ReadCloser, error) {
|
||||
fullPath := p.uploadFileName(site, up)
|
||||
return os.Open(fullPath)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue