annuncio

Comprimi
Ancora nessun annuncio.

file e metadati

Comprimi
X
 
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • file e metadati

    Primo post in questa sezione e subito che rompo le balle.

    Sto progettando una specie di gestore di file su disco in ambiente WAMP. Essenzialmente, questo sistema, associa ad ogni file una o più proprietà definibili dall'utente, in modo da facilitarne la ricerca. Queste proprietà saranno memorizzate all'interno del db; tuttavia, vorrei fare in modo che esso riconosca i file in maniera univoca senza bisogno di memorizzarne il percorso. In pratica, spostare un file da una directory all'altra non dovrebbe creare problemi al sistema.

    L'idea è quella di immagazzinare all'interno del file, come metadato, l'indice univoco del medesimo a cui, poi, farà riferimento il db. Solo che di metadati non me ne intendo. Ho provato a cercare un po'in internet ma c'è poca chiarezza. Essenzialmente la domanda è:

    E'possibile immagazzinare all'interno di un file, indipendentemente dal suo tipo e senza comprometterne il contenuto effettivo, un'informazione? Se sì, in che modo?
    Who is Kaiser Souze? He is supposed to be Turkish. Some say his father was German. Nobody believed he was real. Nobody ever saw him or knew anybody that ever worked directly for him, but to hear Kobayashi tell it, anybody could have worked for Souze. You never knew. That was his power. The greatest trick the Devil ever pulled was convincing the world he didn't exist. And like that, poof. He's gone.

  • #2
    Se tu hai un qualunque file non puoi aggiungerci nulla dentro a meno che il formato di quel file lo supporti espressamente. La difficolta' e' che dovresti sapere come sono fatti tutti i tipi di file che vuoi far gestire alla tua applicazione (ed e' uno sbattimento non da poco).
    Puoi provare pero' a fare un'altro tipo di ragionamento: prendi un file arbitrario (puoi conoscerne il contenuto o meno). Non puoi modificarne il contenuto come vuoi tu (altrimenti potresti renderlo inutilizzabile). Come fare allora ad associare questo file con le sue proprieta' memorizzate sul db ? Devi fare in modo che qualcosa di quel file sia un richiamo per l'entry nel db. Un esempio piuttosto semplice potrebbe essere cambiarci il nome e metterci una stringa hash univoca (e spostando il nome originale sul db). In questo modo tu puoi trattare il file come ti pare (non hai modificato il contenuto e lo puoi spostare dove ti pare e piace). Il nome file ti da il record del db che contiene tutte le sue proprieta'.
    Ad esempio:
    Hai un file video che si chiama video_di_pippo.mpg. Inserisci sul tuo database tutte le proprieta' che vuoi tra cui ci metti anche il nome originale (video_di_pippo) e generi la stringa hash (ad esempio sha1 che e' lunga 40 caratteri). Al file cambi il nome e lo rinomini con la stringa hash che hai generato.
    video_di_pippo.mpg --> ae012fd76a9c8b692f5ae012fd76a9c8b692f5.mpg

    Quando vuoi fare delle ricerche ti baserai sulle proprieta' inserite nel db ed una volta che avrai trovato cio' che ti serve avrai anche l'hash del file corrispondente che potrai tranquillamente vedere con il programma adatto.

    Spero di essermi spiegato
    Oggi il flusso magico e' capriccioso...

    Commenta


    • #3
      Quella era l'ultima spiaggia, è una soluzione che già uso a lavoro. Speravo ci fossero altre proprietà comuni a tutti i file (come, appunto, il nome) ma temo che dovrò fare esattamente come hai detto, a sto punto. A meno di non lavorare per casistica, ma dubito che riuscirei a coprire proprio tutti i tipi di file utili e dubito anche che sia facile operare una lettura/modifica delle proprietà in base al tipo.

      Grazie lo stesso.
      Who is Kaiser Souze? He is supposed to be Turkish. Some say his father was German. Nobody believed he was real. Nobody ever saw him or knew anybody that ever worked directly for him, but to hear Kobayashi tell it, anybody could have worked for Souze. You never knew. That was his power. The greatest trick the Devil ever pulled was convincing the world he didn't exist. And like that, poof. He's gone.

      Commenta


      • #4
        Sì io anche sono per la soluzione di Felomnibus. L'hash ti risparmia un'enorme quantità di fastidi e potresti persino trarne vantaggio, per esempio per una pulizia periodica dei "doppioni".
        Consiglio di non generare l'hash solo in base al nome ma qualcosa di più complesso (anche per diminuire la % di collissione, che comunque è già più che accettabilmente bassa), del tipo:

        nome + estensione + dimensioni + mime/type => hash.

        Commenta


        • #5
          Originariamente inviato da w00000fz Visualizza il messaggio
          Sì io anche sono per la soluzione di Felomnibus. L'hash ti risparmia un'enorme quantità di fastidi e potresti persino trarne vantaggio, per esempio per una pulizia periodica dei "doppioni".
          Consiglio di non generare l'hash solo in base al nome ma qualcosa di più complesso (anche per diminuire la % di collissione, che comunque è già più che accettabilmente bassa), del tipo:

          nome + estensione + dimensioni + mime/type => hash.
          ma se metto l'estensione non è superfluo il mime/type?
          Who is Kaiser Souze? He is supposed to be Turkish. Some say his father was German. Nobody believed he was real. Nobody ever saw him or knew anybody that ever worked directly for him, but to hear Kobayashi tell it, anybody could have worked for Souze. You never knew. That was his power. The greatest trick the Devil ever pulled was convincing the world he didn't exist. And like that, poof. He's gone.

          Commenta


          • #6
            Sì, nel tuo caso è inutile, il mio era un esempio.

            Commenta


            • #7
              Originariamente inviato da w00000fz Visualizza il messaggio
              Sì, nel tuo caso è inutile, il mio era un esempio.
              Intendevi per gli ambienti non windows? Beh, potrei effettivamente ragionare su un caso più ampio.
              Who is Kaiser Souze? He is supposed to be Turkish. Some say his father was German. Nobody believed he was real. Nobody ever saw him or knew anybody that ever worked directly for him, but to hear Kobayashi tell it, anybody could have worked for Souze. You never knew. That was his power. The greatest trick the Devil ever pulled was convincing the world he didn't exist. And like that, poof. He's gone.

              Commenta

              Sto operando...
              X