SlideShare a Scribd company logo
1 of 33
T3CON12
                         Québec City




FILE ABSTRACTION LAYER
                                   1
AGENDA


 Introduction into File Abstraction
   current State in TYPO3
   goals and concepts




                                                 http://theplayunderground.com/images/Folder%20Stack.jpg
 The File Abstraction Layer in T YPO3 6.0
   influences on editors
   architecture
   FAL vs. DAM

 Developers Information: Customize FAL
   custom Drivers
   usage in Extensions
   extending FAL

                                             2
STEFFEN RITTER


 Germany, near Frankfurt

 Studied Computer Science

 Freelancer for T YPO3 Development

 T YPO3 since 2006
   Core Team Member
   Release Manager 4.7




                                      3
Current State,

INTRODUCTION   Goals,
               History,
               Concepts




                          4
INTRODUCTION: CURRENT STATE


 plain PHP functions ( fopen, is_dir, …)
 operating system restriction: Windows vs. Unix
 files in T YPO3 site root

 Usage  copied to uploads/
 thumbnails copied to typo3temp/

 obtains disk space
 replacing files dif ficult
 meta-data distributed


                                                   5
INTRODUCTION: GOALS


 omit superfluous copies
        reference files

 central meta-data management

 no direct file-system access

 external file-systems

 „DAM“ with core support


                                    6
INTRODUCTION: HISTORY AND FUTURE


 planned since years

 several attempts / refactorings

 huge task  DAM not core

 finally: BLE-project with planned integration in 4.7

 released with 6.0alpha1
   improvements and actions welcome


                                                         7
INTRODUCTION: CONCEPTS


 Resource      – element in file-system

 File          – real file in file -system

 Folder        – structuring unit of file -system
   Folder in local file-system, tag or album in Flickr


 ProcessedFile – variants
   References File




                                                          8
INTRODUCTION: CONCEPTS


 Storage      – unix: mount
   Mount-point definition
   Aggregation: Driver, Name, Path, „user-mount “


 Driver       – low -level interface
   php file-system calls
   WebDAV: PUT/GET/POST …




                                                     9
FILE ABSTRACTION     Changes for
                     Editors
      IN TYPO3 6.0




                               10
CHANGES FOR EDITORS: FILE MODULE




                                   11
CHANGES FOR EDITOR: IMAGES




                             12
CHANGES FOR EDITOR: HCI CHANGES




                                  13
CHANGES FOR EDITORS: UPLOADS




                               14
CHANGES FOR EDITORS: FILE-META DATA




                                  15
CHANGES FOR EDITORS: FILE-META DATA

 WITH MEDIA INSTALLED:

   „bridge to DAM“




                                  16
FILE ABSTRACTION     Architecture
      IN TYPO3 6.0




                                17
ARCHITECTURE: CLASS HIERARCHY

                Interface to code against




                Objects in memory



                In file-system
                                             18
ARCHITECTURE: PERSISTENCE


   File:            database    (sys_file)
   Folder:          transient
   Storage:         database    (sys_storage)
   FileReference:   database    (sys_file_reference)
   ProcessedFile:   database    (sys_file_processedfile)



 References in Database: [UID]
 Folder: [???]



                                                            19
ARCHITECTURE: IDENTIFY A RESOURCE

 4 dif ferent Identifier:
      Identifier
      Combined Identifier
      uid
      Sha1 (internal only)

 Identifier                               user_upload/Admin/test.html
    String, unique within Storage
    useless without storage

 Combined Identifier                      1:user_upload/Admin/test.html
    Extends identifier with Storage UID
    [StorageUid]:[Identifier]

 uid
    Indexed elements
    Database relations



                                                                         20
ARCHITECTURE: IDENTIFY A RESOURCE




           WAAAHH?



                                    21
ARCHITECTURE: IDENTIFY A RESOURCE

Which Identifier to use?

 Combined-Identifier:
   TypoScript,
   Hand over file to FAL
   manual references


 Uid
   internally (extensions, php, database)
   Whenever possible (better performance)




                                             22
ARCHITECTURE: IDENTIFY A RESOURCE

Gimmick / Backwards compatibilty: Legacy Files

 „Virtual Storage“
     uid: 0
     local-driver
     Root at TYPO3_site
     not indexed!

   Access all files:
       0:uploads/pics/bla.jpg
       0:typo3conf/ext/myEXT/ext_icon.gif




                                                 23
ARCHITECTURE:
         STORAGE AND MOUNTPOINTS
 Top-Level in file-tree

 Drivers can ship custom config
   WebDAV: Username, Password, …


 Of fline/Online detection for
  Remote data sources




                                    24
ARCHITECTURE:
            STORAGE AND MOUNTPOINTS
 „FileMounts“: new definition
   Label

   Storage

   All Folders in Storage selectable


 User-FileMounts „filter“ Storage
   All storages in filetree
   Only accessible folder shown




                                        25
ARCHITECTURE: COLLECTIONS


 New collection Interfaces since T YPO3 4.7
 Central storage/grouping of records/data
 Similar JCF / STL Container

 FAL extends Collection:
   Folder-Collection:   All files within a folder
   Static-Collection:   pre selected files


 Extensions/Upload-CE uses „collection“
   Central exchange of files



                                                     26
FAL VS. DAM




              27
FILE ABSTRACTION LAYER AND D.A.M.

 FAL is NOT compatible to DAM
 FAL won‘t replace DAM

 FAL concentrates on file meta -data
 DAM concentrates on file -content meta-data

 DAM 2.0  Media Extension
   Static collections                              - FAL
   Folder collections                              - FAL
   Tag/Filter collection                 - t.b.d

   Migration  possible (to a certain extend)

 New projects with DAM??? Start with 6.0alpha1 and FAL!!!

                                                             28
Use, Extend
 DEVELOPERS   and customize
              the File
INFORMATION   Abstraction
              Layer




                        29
DEVELOPERS INFORMATION:
              CUSTOM DRIVERS
 Possibilities: WebDAV, Flickr, Amazon S3, FTP, SharePoint…

 Driver Interface + Registry
  1. implement Interface
  2. Register at Registry
  3. configure within Storage




                                                               30
DEVELOPERS INFORMATION:
               T YPOSCRIPT
 New TypoScript Object „FILES“




                                   31
DEVELOPERS INFORMATION:
        WORKING WITH COLLECTIONS
 collections selected in TCE -Form
  PHP Code has to work with them




                                      32
DEVELOPERS INFORMATION:
    RETRIEVING FILES FROM T YPOLINK
 Currently: Check for „is file“

 New prefix „file:“
   file:1:user_upload/index.html
   file:735




                                      33

More Related Content

What's hot

Files concepts.53
Files concepts.53Files concepts.53
Files concepts.53myrajendra
 
Os10
Os10Os10
Os10issbp
 
ITFT_File system interface in Operating System
ITFT_File system interface in Operating SystemITFT_File system interface in Operating System
ITFT_File system interface in Operating SystemSneh Prabha
 
Unit ivos - file systems
Unit ivos - file systemsUnit ivos - file systems
Unit ivos - file systemsdonny101
 
Acyclic grapch directory 56(2)
Acyclic grapch directory 56(2)Acyclic grapch directory 56(2)
Acyclic grapch directory 56(2)myrajendra
 
Operating Systems - Implementing File Systems
Operating Systems - Implementing File SystemsOperating Systems - Implementing File Systems
Operating Systems - Implementing File SystemsMukesh Chinta
 
Local Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIRLocal Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIRmarcocasario
 
TagFS — Tag Semantics for Hierarchical File Systems
TagFS — Tag Semantics for Hierarchical File SystemsTagFS — Tag Semantics for Hierarchical File Systems
TagFS — Tag Semantics for Hierarchical File Systemsguest52d7e8
 
Chapter 10 - File System Interface
Chapter 10 - File System InterfaceChapter 10 - File System Interface
Chapter 10 - File System InterfaceWayne Jones Jnr
 
File System Interface
File System InterfaceFile System Interface
File System Interfacechandinisanz
 
directory structure and file system mounting
directory structure and file system mountingdirectory structure and file system mounting
directory structure and file system mountingrajshreemuthiah
 
File implementation
File implementationFile implementation
File implementationMohd Arif
 
101 4.6 create and change hard and symbolic links v2
101 4.6 create and change hard and symbolic links v2101 4.6 create and change hard and symbolic links v2
101 4.6 create and change hard and symbolic links v2Acácio Oliveira
 

What's hot (20)

Files concepts.53
Files concepts.53Files concepts.53
Files concepts.53
 
Os10
Os10Os10
Os10
 
ITFT_File system interface in Operating System
ITFT_File system interface in Operating SystemITFT_File system interface in Operating System
ITFT_File system interface in Operating System
 
OSCh12
OSCh12OSCh12
OSCh12
 
Unit ivos - file systems
Unit ivos - file systemsUnit ivos - file systems
Unit ivos - file systems
 
ISUG 113: File stream
ISUG 113: File streamISUG 113: File stream
ISUG 113: File stream
 
Acyclic grapch directory 56(2)
Acyclic grapch directory 56(2)Acyclic grapch directory 56(2)
Acyclic grapch directory 56(2)
 
Operating Systems - Implementing File Systems
Operating Systems - Implementing File SystemsOperating Systems - Implementing File Systems
Operating Systems - Implementing File Systems
 
Local Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIRLocal Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIR
 
TagFS — Tag Semantics for Hierarchical File Systems
TagFS — Tag Semantics for Hierarchical File SystemsTagFS — Tag Semantics for Hierarchical File Systems
TagFS — Tag Semantics for Hierarchical File Systems
 
Os6
Os6Os6
Os6
 
Operating system
Operating systemOperating system
Operating system
 
OPERATING SYSTEM
OPERATING SYSTEMOPERATING SYSTEM
OPERATING SYSTEM
 
Chapter 10 - File System Interface
Chapter 10 - File System InterfaceChapter 10 - File System Interface
Chapter 10 - File System Interface
 
File System Interface
File System InterfaceFile System Interface
File System Interface
 
directory structure and file system mounting
directory structure and file system mountingdirectory structure and file system mounting
directory structure and file system mounting
 
21 domino mohan-1
21 domino mohan-121 domino mohan-1
21 domino mohan-1
 
File implementation
File implementationFile implementation
File implementation
 
Files
FilesFiles
Files
 
101 4.6 create and change hard and symbolic links v2
101 4.6 create and change hard and symbolic links v2101 4.6 create and change hard and symbolic links v2
101 4.6 create and change hard and symbolic links v2
 

Similar to The File Abstraction Layer in TYPO3 6.0

TYPO3 6.0. What's new
TYPO3 6.0. What's newTYPO3 6.0. What's new
TYPO3 6.0. What's newRafal Brzeski
 
Fight with linux reverse
Fight with linux reverseFight with linux reverse
Fight with linux reversechao yang
 
Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein
 Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein
Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-HornsteinYandex
 
Root file system for embedded systems
Root file system for embedded systemsRoot file system for embedded systems
Root file system for embedded systemsalok pal
 
computer notes - Unix primer
computer notes - Unix primercomputer notes - Unix primer
computer notes - Unix primerecomputernotes
 
Biblio to Fedora Commons REST API
Biblio to Fedora Commons REST APIBiblio to Fedora Commons REST API
Biblio to Fedora Commons REST APIcmoyers
 
Hadoop training in bangalore-kellytechnologies
Hadoop training in bangalore-kellytechnologiesHadoop training in bangalore-kellytechnologies
Hadoop training in bangalore-kellytechnologiesappaji intelhunt
 
C++ shared libraries and loading
C++ shared libraries and loadingC++ shared libraries and loading
C++ shared libraries and loadingRahul Jamwal
 

Similar to The File Abstraction Layer in TYPO3 6.0 (20)

TYPO3 6.0. What's new
TYPO3 6.0. What's newTYPO3 6.0. What's new
TYPO3 6.0. What's new
 
DFSNov1.pptx
DFSNov1.pptxDFSNov1.pptx
DFSNov1.pptx
 
DAOS Middleware overview
DAOS Middleware overviewDAOS Middleware overview
DAOS Middleware overview
 
Fsoss12
Fsoss12Fsoss12
Fsoss12
 
Fight with linux reverse
Fight with linux reverseFight with linux reverse
Fight with linux reverse
 
Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein
 Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein
Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein
 
Root file system for embedded systems
Root file system for embedded systemsRoot file system for embedded systems
Root file system for embedded systems
 
Fsoss2011
Fsoss2011Fsoss2011
Fsoss2011
 
Linking in MS-Dos System
Linking in MS-Dos SystemLinking in MS-Dos System
Linking in MS-Dos System
 
Tlf2012
Tlf2012Tlf2012
Tlf2012
 
Hadoop -HDFS.ppt
Hadoop -HDFS.pptHadoop -HDFS.ppt
Hadoop -HDFS.ppt
 
File
FileFile
File
 
computer notes - Unix primer
computer notes - Unix primercomputer notes - Unix primer
computer notes - Unix primer
 
Nelf2013
Nelf2013Nelf2013
Nelf2013
 
Biblio to Fedora Commons REST API
Biblio to Fedora Commons REST APIBiblio to Fedora Commons REST API
Biblio to Fedora Commons REST API
 
Nelf2012
Nelf2012Nelf2012
Nelf2012
 
Hadoop
HadoopHadoop
Hadoop
 
Hadoop training in bangalore-kellytechnologies
Hadoop training in bangalore-kellytechnologiesHadoop training in bangalore-kellytechnologies
Hadoop training in bangalore-kellytechnologies
 
NetApp & Storage fundamentals
NetApp & Storage fundamentalsNetApp & Storage fundamentals
NetApp & Storage fundamentals
 
C++ shared libraries and loading
C++ shared libraries and loadingC++ shared libraries and loading
C++ shared libraries and loading
 

More from Steffen Ritter

The Future of TYPO3 CMS
The Future of TYPO3 CMSThe Future of TYPO3 CMS
The Future of TYPO3 CMSSteffen Ritter
 
Der File Abstraction Layer
Der File Abstraction LayerDer File Abstraction Layer
Der File Abstraction LayerSteffen Ritter
 
Neuerungen in TypoScript in TYPO3 Version 4.7
Neuerungen in TypoScript in TYPO3 Version 4.7Neuerungen in TypoScript in TYPO3 Version 4.7
Neuerungen in TypoScript in TYPO3 Version 4.7Steffen Ritter
 
Einführung und Grobüberblick über TYPO3 4.7
Einführung und Grobüberblick  über TYPO3 4.7Einführung und Grobüberblick  über TYPO3 4.7
Einführung und Grobüberblick über TYPO3 4.7Steffen Ritter
 

More from Steffen Ritter (6)

The Future of TYPO3 CMS
The Future of TYPO3 CMSThe Future of TYPO3 CMS
The Future of TYPO3 CMS
 
The Way to TYPO3 6.0
The Way to TYPO3 6.0The Way to TYPO3 6.0
The Way to TYPO3 6.0
 
Der File Abstraction Layer
Der File Abstraction LayerDer File Abstraction Layer
Der File Abstraction Layer
 
Neuerungen in TypoScript in TYPO3 Version 4.7
Neuerungen in TypoScript in TYPO3 Version 4.7Neuerungen in TypoScript in TYPO3 Version 4.7
Neuerungen in TypoScript in TYPO3 Version 4.7
 
HTML5 in TYPO3 4.7
HTML5 in TYPO3 4.7HTML5 in TYPO3 4.7
HTML5 in TYPO3 4.7
 
Einführung und Grobüberblick über TYPO3 4.7
Einführung und Grobüberblick  über TYPO3 4.7Einführung und Grobüberblick  über TYPO3 4.7
Einführung und Grobüberblick über TYPO3 4.7
 

Recently uploaded

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 

The File Abstraction Layer in TYPO3 6.0

  • 1. T3CON12 Québec City FILE ABSTRACTION LAYER 1
  • 2. AGENDA  Introduction into File Abstraction  current State in TYPO3  goals and concepts http://theplayunderground.com/images/Folder%20Stack.jpg  The File Abstraction Layer in T YPO3 6.0  influences on editors  architecture  FAL vs. DAM  Developers Information: Customize FAL  custom Drivers  usage in Extensions  extending FAL 2
  • 3. STEFFEN RITTER  Germany, near Frankfurt  Studied Computer Science  Freelancer for T YPO3 Development  T YPO3 since 2006  Core Team Member  Release Manager 4.7 3
  • 4. Current State, INTRODUCTION Goals, History, Concepts 4
  • 5. INTRODUCTION: CURRENT STATE  plain PHP functions ( fopen, is_dir, …)  operating system restriction: Windows vs. Unix  files in T YPO3 site root  Usage  copied to uploads/  thumbnails copied to typo3temp/  obtains disk space  replacing files dif ficult  meta-data distributed 5
  • 6. INTRODUCTION: GOALS  omit superfluous copies  reference files  central meta-data management  no direct file-system access  external file-systems  „DAM“ with core support 6
  • 7. INTRODUCTION: HISTORY AND FUTURE  planned since years  several attempts / refactorings  huge task  DAM not core  finally: BLE-project with planned integration in 4.7  released with 6.0alpha1  improvements and actions welcome 7
  • 8. INTRODUCTION: CONCEPTS  Resource – element in file-system  File – real file in file -system  Folder – structuring unit of file -system  Folder in local file-system, tag or album in Flickr  ProcessedFile – variants  References File 8
  • 9. INTRODUCTION: CONCEPTS  Storage – unix: mount  Mount-point definition  Aggregation: Driver, Name, Path, „user-mount “  Driver – low -level interface  php file-system calls  WebDAV: PUT/GET/POST … 9
  • 10. FILE ABSTRACTION Changes for Editors IN TYPO3 6.0 10
  • 11. CHANGES FOR EDITORS: FILE MODULE 11
  • 12. CHANGES FOR EDITOR: IMAGES 12
  • 13. CHANGES FOR EDITOR: HCI CHANGES 13
  • 14. CHANGES FOR EDITORS: UPLOADS 14
  • 15. CHANGES FOR EDITORS: FILE-META DATA 15
  • 16. CHANGES FOR EDITORS: FILE-META DATA  WITH MEDIA INSTALLED:  „bridge to DAM“ 16
  • 17. FILE ABSTRACTION Architecture IN TYPO3 6.0 17
  • 18. ARCHITECTURE: CLASS HIERARCHY  Interface to code against  Objects in memory  In file-system 18
  • 19. ARCHITECTURE: PERSISTENCE  File: database (sys_file)  Folder: transient  Storage: database (sys_storage)  FileReference: database (sys_file_reference)  ProcessedFile: database (sys_file_processedfile)  References in Database: [UID]  Folder: [???] 19
  • 20. ARCHITECTURE: IDENTIFY A RESOURCE  4 dif ferent Identifier:  Identifier  Combined Identifier  uid  Sha1 (internal only)  Identifier user_upload/Admin/test.html  String, unique within Storage  useless without storage  Combined Identifier 1:user_upload/Admin/test.html  Extends identifier with Storage UID  [StorageUid]:[Identifier]  uid  Indexed elements  Database relations 20
  • 21. ARCHITECTURE: IDENTIFY A RESOURCE WAAAHH? 21
  • 22. ARCHITECTURE: IDENTIFY A RESOURCE Which Identifier to use?  Combined-Identifier:  TypoScript,  Hand over file to FAL  manual references  Uid  internally (extensions, php, database)  Whenever possible (better performance) 22
  • 23. ARCHITECTURE: IDENTIFY A RESOURCE Gimmick / Backwards compatibilty: Legacy Files  „Virtual Storage“  uid: 0  local-driver  Root at TYPO3_site  not indexed!  Access all files:  0:uploads/pics/bla.jpg  0:typo3conf/ext/myEXT/ext_icon.gif 23
  • 24. ARCHITECTURE: STORAGE AND MOUNTPOINTS  Top-Level in file-tree  Drivers can ship custom config  WebDAV: Username, Password, …  Of fline/Online detection for Remote data sources 24
  • 25. ARCHITECTURE: STORAGE AND MOUNTPOINTS  „FileMounts“: new definition  Label  Storage  All Folders in Storage selectable  User-FileMounts „filter“ Storage  All storages in filetree  Only accessible folder shown 25
  • 26. ARCHITECTURE: COLLECTIONS  New collection Interfaces since T YPO3 4.7  Central storage/grouping of records/data  Similar JCF / STL Container  FAL extends Collection:  Folder-Collection: All files within a folder  Static-Collection: pre selected files  Extensions/Upload-CE uses „collection“  Central exchange of files 26
  • 28. FILE ABSTRACTION LAYER AND D.A.M.  FAL is NOT compatible to DAM  FAL won‘t replace DAM  FAL concentrates on file meta -data  DAM concentrates on file -content meta-data  DAM 2.0  Media Extension  Static collections - FAL  Folder collections - FAL  Tag/Filter collection - t.b.d  Migration  possible (to a certain extend)  New projects with DAM??? Start with 6.0alpha1 and FAL!!! 28
  • 29. Use, Extend DEVELOPERS and customize the File INFORMATION Abstraction Layer 29
  • 30. DEVELOPERS INFORMATION: CUSTOM DRIVERS  Possibilities: WebDAV, Flickr, Amazon S3, FTP, SharePoint…  Driver Interface + Registry 1. implement Interface 2. Register at Registry 3. configure within Storage 30
  • 31. DEVELOPERS INFORMATION: T YPOSCRIPT  New TypoScript Object „FILES“ 31
  • 32. DEVELOPERS INFORMATION: WORKING WITH COLLECTIONS  collections selected in TCE -Form PHP Code has to work with them 32
  • 33. DEVELOPERS INFORMATION: RETRIEVING FILES FROM T YPOLINK  Currently: Check for „is file“  New prefix „file:“  file:1:user_upload/index.html  file:735 33