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

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Recently uploaded (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

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