Browse Source

Use atomic rename

pull/5340/merge
Chocobozzz 1 week ago
parent
commit
49b80bd9e1
No known key found for this signature in database GPG Key ID: 583A612D890159BE
2 changed files with 4 additions and 4 deletions
  1. +3
    -3
      server/lib/live/live-segment-sha-store.ts
  2. +1
    -1
      server/lib/object-storage/shared/object-storage-helpers.ts

+ 3
- 3
server/lib/live/live-segment-sha-store.ts View File

@@ -1,4 +1,4 @@
import { move, writeJson } from 'fs-extra'
import { rename, writeJson } from 'fs-extra'
import PQueue from 'p-queue'
import { basename } from 'path'
import { mapToJSON } from '@server/helpers/core-utils'
@@ -72,9 +72,9 @@ class LiveSegmentShaStore {

private writeToDisk () {
return this.writeQueue.add(async () => {
// Atomic write
// Atomic write: use rename instead of move that is not atomic
await writeJson(this.sha256PathTMP, mapToJSON(this.segmentsSha256))
await move(this.sha256PathTMP, this.sha256Path, { overwrite: true })
await rename(this.sha256PathTMP, this.sha256Path)

if (this.sendToObjectStorage) {
const url = await storeHLSFileFromPath(this.streamingPlaylist, this.sha256Path)


+ 1
- 1
server/lib/object-storage/shared/object-storage-helpers.ts View File

@@ -278,7 +278,7 @@ async function uploadToStorage (options: {

logger.debug(
'Completed %s%s in bucket %s',
bucketInfo.PREFIX, objectStorageKey, bucketInfo.BUCKET_NAME, lTags()
bucketInfo.PREFIX, objectStorageKey, bucketInfo.BUCKET_NAME, { ...lTags(), reseponseMetadata: response.$metadata }
)

return getInternalUrl(bucketInfo, objectStorageKey)


Loading…
Cancel
Save